BONUS.SRC 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176
  1. ************************************************************************
  2. * *
  3. * 044 [RYUUKO NO KEN] *
  4. * BONUS STAGE *
  5. * by S.OKADA from 92/06/16 Tue 16:30 *
  6. * *
  7. ************************************************************************
  8. XDEF INIT_BONUS_STG0,BONUS_STG
  9. XDEF ICE_MAKE
  10. XDEF INIT_BONUS1
  11. XDEF INIT_BONUS2
  12. XDEF PM_ICE,PM_BEER
  13. XDEF BONUS2_LEVEL_JUDGE
  14. XDEF BEER_NECK
  15. XREF ?A5
  16. ;by PHASE
  17. XREF ACTIVE_TRIGER
  18. ;by STORY
  19. XREF STAGE_TIME_DEC
  20. XREF GAME_OBJ_MAP,LEVER_SET_GAME
  21. ;by GAME_DSP
  22. XREF GAME_TIME_DISP
  23. XREF SCORE_DISP
  24. ;by DEMO_CML
  25. XREF DEMO_OBJ_MAP
  26. XREF MASTER_CHECK
  27. XREF INIT_TI_DEMO
  28. ;by MESSAGE
  29. XREF MESS_SET,MESS_SET_INNER,FLAME_WRITE,FLAME_CLR
  30. XREF FLAME_WRITED,FLAME_CLRD
  31. ;by LANG
  32. XREF LANG_SET,LANG_SET_INNER
  33. ;by BSEL
  34. XREF AFTER_BONUS_0
  35. XREF INIT_BONUS3,START_MAKE
  36. SECT GAME,,C
  37. INCLUDE SYS.INC
  38. INCLUDE NEO_GEO.INC
  39. INCLUDE LABEL.INC
  40. INCLUDE HERO_TBL.INC
  41. INCLUDE ACT_No.INC
  42. INCLUDE MACRO.INC
  43. INCLUDE EASY_MAC.INC
  44. INCLUDE SMACRO.INC
  45. INCLUDE SCODE.INC
  46. INIT_BONUS_STG0:
  47. LEA.L MLWORK1(A5),A6
  48. MOVE.W BONUS_No(A5),D0
  49. ADD.W D0,D0
  50. ADD.W D0,D0
  51. JMP INIT_BONUS_VECTOR(PC,D0.W)
  52. INIT_BONUS_VECTOR:
  53. JMP INIT_BONUS2(PC)
  54. JMP INIT_BONUS1(PC)
  55. JMP INIT_BONUS3(PC)
  56. BONUS_STG:
  57. MOVE.B #11011111B,D0
  58. OR.B BONUS_DI(A5),D0
  59. AND.B D0,START_FLAG2(A5)
  60. TST.B BONUS_STATE_ON(A5)
  61. BEQ.S BONUS_STG_1
  62. JSR SCORE_DISP
  63. BONUS_STG_1:
  64. LEA.L MLWORK1(A5),A6
  65. EASY_START
  66. INIT_BONUS1:
  67. MOVE.W #0,COLOR_BUFFER+1FFEH(A5)
  68. COLOR_COMMAND
  69. PALETTE 000H,00H,PG_SET+BASE_COLOR
  70. PALETTE 020H,28H,PG_SET+BASE_COLOR
  71. PALETTE 0E0H,26H,PG_SET+FADE_COLOR
  72. PALETTE 0FFH,00H,BASE_COLOR
  73. PALETTE_END
  74. MOVE.W #500H,D0
  75. MOVE.B LSPC_MODE_STORE+1(A5),D0
  76. BCLR.L #3,D0 auto action on
  77. MOVE.W D0,LSPC_MODE_STORE(A5)
  78. MOVE.W D0,LSPC_MODE
  79. MOVE.W #31H,D0 clear
  80. JSR.S MESS_SET
  81. OBJ_MAP DEMO_OBJ_MAP
  82. CLR.L WINDOW_X(A5)
  83. CLR.L WINDOW_Y(A5)
  84. BTST.B #6,PHASE+1(A5)
  85. BNE.S INIT_BONUS1_DEMO
  86. MOVE.W #7FFFH,COLOR_BUFFER+1FFEH(A5)
  87. COLOR_COMMAND
  88. PALETTE 0FFH,00H,BASE_COLOR
  89. PALETTE_END
  90. STEP_SAVE 0,BONUS1_0
  91. RTS
  92. INIT_BONUS1_DEMO:
  93. ADDQ.B #1,DEMO_NUMBER(A5)
  94. BTST.B #0,DEMO_NUMBER(A5)
  95. BEQ.S INIT_BONUS2_DEMO
  96. MOVE.W #0,BONUS_HERO(A5)
  97. STEP_SAVE 0,BONUS1_DEMO_0
  98. RTS
  99. INIT_BONUS2_DEMO:
  100. MOVE.W #1,BONUS_HERO(A5)
  101. STEP_SAVE 0,BONUS2_DEMO_0
  102. RTS
  103. BONUS1_DEMO_0:
  104. PAL_WAIT 0FFH
  105. PCHILD WORK_N0,P_EASY,C_BONUS1_BACK,0,0,1,0
  106. PCHILD WORK_N1,P_EASY,C_KAKUSI,0,-10H,8,0
  107. PCHILD WORK_N2,P_EASY,C_BONUS1_DEMO,160,0C0H,3,0
  108. LEA.L (A0),A2
  109. PCHILD WORK_N3,P_EASY,C_BONUS1_ICE,160,0C0H,4,0
  110. MOVE.B WORK_No(A0),WORK_N0(A2)
  111. COLOR_COMMAND
  112. PALETTE 0E0H,00H,FADE_IN+CC_SPEED2
  113. PALETTE 0E1H,00H,FADE_IN+CC_SPEED2
  114. PALETTE 0E2H,00H,FADE_IN+CC_SPEED0
  115. PALETTE_END
  116. END_NEXT 2,BONUS1_DEMO_2
  117. BONUS1_DEMO_2:
  118. JSR BONUS_HERO_MOVE(PC)
  119. BCLR.B #5,ACT_FLAG(A0)
  120. BEQ.S BONUS1_DEMO_201
  121. MOVE.B #3,STEP1(A0)
  122. BONUS1_DEMO_201:
  123. JSR BONUS_BACK_FLASH(PC)
  124. BTST.B #7,ACT_FLAG(A0)
  125. NEXT_CHECK BNE,4,BONUS1_DEMO_4
  126. COLOR_COMMAND
  127. PALETTE 020H,28H,PG_SET+RGB_OUT+CC_SPEED1
  128. PALETTE 0E0H,26H,PG_SET+RGB_OUT+CC_SPEED1
  129. PALETTE 0FFH,00H,RGB_OUT+CC_SPEED1
  130. PALETTE_END
  131. RTS
  132. BONUS1_DEMO_4:
  133. PAL_WAIT 0EFH
  134. JSR INIT_TI_DEMO(PC)
  135. RTS
  136. BONUS1_LEVEL_SET:
  137. BSR BONUS1_LEVEL_JUDGE
  138. SUB_WORK WORK_N2,A0,0
  139. MOVE.B D2,LEVEL(A0)
  140. CMP.B #3,D2
  141. BCS.S B1LS_1
  142. MOVE.B #2,BONUS_WIN(A5)
  143. CMP.B #4,D2
  144. BNE.S B1LS_1
  145. MOVE.B #0FFH,BONUS_WIN(A5)
  146. LEA.L STORY_LIFE(A5),A3
  147. BSR BONUS_UP_SET
  148. B1LS_1:
  149. RTS
  150. BONUS_UP_SET:
  151. MOVEQ.L #1,D0
  152. CMP.W #2,BONUS_RANK(A5)
  153. BCS.S BUS_1
  154. MOVEQ.L #2,D0
  155. BUS_1:
  156. ADD.B (A3),D0
  157. CMP.B #16,D0
  158. BLS.S BUS_2
  159. MOVEQ.L #16,D0
  160. BUS_2:
  161. MOVE.B D0,(A3)
  162. RTS
  163. BONUS1_LEVEL_JUDGE:
  164. MOVEQ.L #0,D2
  165. MOVE.B HERO1+HERO_LIFE(A5),D0
  166. SUB.B #24,D0
  167. BCS.S B1LJ_1
  168. ADDQ.W #1,D2
  169. SUB.B #40,D0
  170. BCS.S B1LJ_1
  171. ADDQ.W #1,D2
  172. SUB.B #32,D0
  173. BCS.S B1LJ_1
  174. ADDQ.W #1,D2
  175. SUB.B #24,D0
  176. BCS.S B1LJ_1
  177. ADDQ.W #1,D2
  178. B1LJ_1:
  179. RTS
  180. BONUS1_WIN_SET:
  181. SUB_WORK WORK_N2,A0,0
  182. MOVEQ.L #0,D0
  183. MOVE.B LEVEL(A0),D0
  184. ADD.W D0,D0
  185. ADD.W BONUS_HERO(A5),D0
  186. ADD.W D0,D0
  187. MOVE.W BONUS1_WIN_CH(PC,D0.W),ACT_No(A0)
  188. MOVE.B #-1,ACT_COUNT(A0)
  189. MOVE.B #-1,ACT_TIMER(A0)
  190. MOVE.B #1,ACT_DEC(A0)
  191. MOVE.B #3,STEP1(A0)
  192. RTS
  193. BONUS1_WIN_CH:
  194. DC.W C_BONUS1_1P_LOS
  195. DC.W C_BONUS1_2P_LOS
  196. DC.W C_BONUS1_1P_W1
  197. DC.W C_BONUS1_2P_W1
  198. DC.W C_BONUS1_1P_W2
  199. DC.W C_BONUS1_2P_W2
  200. DC.W C_BONUS1_1P_W3
  201. DC.W C_BONUS1_2P_W3
  202. DC.W C_BONUS1_1P_W4
  203. DC.W C_BONUS1_2P_W4
  204. BONUS1_GAGE:
  205. JSR.S ACTIVE_TRIGER
  206. BTST.L #B_A_BUTTON,D2
  207. BEQ.S B1G_2
  208. MOVEQ.L #0,D0
  209. MOVE.B HERO1+HERO_LIFE(A5),D0
  210. LSR.W #5,D0
  211. MOVE.W BONUS_RANK(A5),D1
  212. ADD.W D1,D1
  213. ADD.W D1,D1
  214. ADD.W D0,D1
  215. ADD.W D1,D1
  216. MOVE.W B1GUD(PC,D1.W),D0
  217. ADD.W D0,HERO1+HERO_LIFE(A5)
  218. BPL.S B1G_1
  219. MOVE.B #127,HERO1+HERO_LIFE(A5)
  220. B1G_1:
  221. CLR.B BONUS_TIMER(A5)
  222. JSR BONUS_LIFE
  223. RTS
  224. B1G_2:
  225. ADD.B #1,BONUS_TIMER(A5)
  226. MOVE.W LEVEL_TEMP(A5),D0
  227. MOVE.B B1GDD(PC,D0.W),D0
  228. CMP.B BONUS_TIMER(A5),D0
  229. BHI.S B1G_4
  230. CLR.B BONUS_TIMER(A5)
  231. SUBQ.B #1,HERO1+HERO_LIFE(A5)
  232. BCC.S B1G_3
  233. CLR.B HERO1+HERO_LIFE(A5)
  234. B1G_3:
  235. JSR BONUS_LIFE
  236. B1G_4:
  237. RTS
  238. B1GUD:
  239. DC.W 300H,280H,200H,100H
  240. DC.W 280H,200H,180H,100H
  241. DC.W 200H,1A0H,140H,0C0H
  242. B1GDD:
  243. DC.B 12,10,9,8,7,6,5,4
  244. BONUS_HERO_SET:
  245. LEA.L HERO1(A5),A0
  246. TST.W STORY_PLAYER(A5)
  247. BEQ.S BHS_1
  248. LEA.L HERO2(A5),A0
  249. BHS_1:
  250. MOVE.W HERO_TYPE(A0),BONUS_HERO(A5)
  251. RTS
  252. BONUS1_0:
  253. PAL_WAIT 0FFH
  254. SOUND #S_KAKIN
  255. SOUND #S_BONUS2
  256. MOVE.W #0,D0
  257. JSR.S MESS_SET
  258. BSR BONUS_HERO_SET
  259. SEC_TIMER_SET 2,WORD_TIMER
  260. END_NEXT 1,BONUS1_1
  261. BONUS1_1:
  262. SEC_TIMER WORD_TIMER
  263. NEXT_CHECK BCS,2,BONUS1_2
  264. MOVE.B #1,BONUS_STATE_ON(A5)
  265. MOVE.W #0,HERO1+HERO_LIFE(A5)
  266. MOVE.B #16,HERO1+LIFE_GAGE(A5)
  267. MOVE.B #9,STAGE_TIME(A5)
  268. MOVE.B SECOND_VALUE(A5),STAGE_TIME+1(A5)
  269. MOVE.W #1,D0
  270. JSR.S MESS_SET
  271. MOVE.W #6CH,D0
  272. JSR.S MESS_SET
  273. JSR GAME_TIME_DISP
  274. JSR BONUS_LIFE
  275. MOVE.W #0,FLAME_COUNT(A5)
  276. MOVE.W #3,FLAME_END(A5)
  277. MOVE.W #0,FLAME_TYPE(A5)
  278. MOVE.W #7000H+20H*3+24,FLAME_POS(A5)
  279. MOVE.W #0H,COLOR_BUFFER+1FFEH(A5)
  280. COLOR_COMMAND
  281. PALETTE 0FFH,00H,BASE_COLOR
  282. PALETTE_END
  283. PCHILD WORK_N0,P_EASY,C_BONUS1_BACK,0,0,1,0
  284. PCHILD WORK_N1,P_EASY,C_KAKUSI,0,-10H,8,0
  285. PCHILD WORK_N2,P_EASY,C_BONUS1_1P,160,0C0H,3,0
  286. TST.W BONUS_HERO(A5)
  287. BEQ.S BONUS1_1_1
  288. MOVE.W #C_BONUS1_2P,ACT_No(A0)
  289. BONUS1_1_1:
  290. LEA.L (A0),A2
  291. PCHILD WORK_N3,P_EASY,C_BONUS1_ICE,160,0C0H,4,0
  292. MOVE.B WORK_No(A0),WORK_N0(A2)
  293. COLOR_COMMAND
  294. PALETTE 0E0H,00H,FADE_IN+CC_SPEED2
  295. PALETTE 0E1H,00H,FADE_IN+CC_SPEED2
  296. PALETTE 0E2H,00H,FADE_IN+CC_SPEED0
  297. PALETTE_END
  298. SEC_TIMER_SET 2,WORD_TIMER
  299. RTS
  300. BONUS1_2:
  301. SEC_TIMER WORD_TIMER
  302. JSR.S FLAME_WRITE
  303. NEXT_CHECK BEQ,3,BONUS1_21
  304. MOVE.W #74*3,D0
  305. JSR.S LANG_SET
  306. RTS
  307. BONUS1_21:
  308. SEC_TIMER WORD_TIMER
  309. NEXT_CHECK BCS,3,BONUS1_3
  310. MOVE.W #2,D0
  311. JSR.S MESS_SET
  312. JSR START_MAKE(PC)
  313. MOVE.W #0,FLAME_END(A5)
  314. RTS
  315. BONUS1_3:
  316. TST.W FLAME_COUNT(A5)
  317. BEQ.S BONUS1_301
  318. JSR.S FLAME_CLR
  319. BONUS1_301:
  320. JSR BONUS1_GAGE(PC)
  321. JSR BONUS_HERO_MOVE(PC)
  322. JSR STAGE_TIME_DEC(PC)
  323. TST.B STAGE_TIME(A5)
  324. NEXT_CHECK BEQ,4,BONUS1_50
  325. MOVE.B #00100000B,BONUS_DI(A5)
  326. BSR BONUS1_LEVEL_SET
  327. RTS
  328. BONUS1_50:
  329. SUB_WORK WORK_N2,A0,0
  330. BTST.B #0,ACT_FLAG(A0)
  331. NEXT_CHECK BNE,6,BONUS1_4
  332. BSR BONUS1_WIN_SET
  333. RTS
  334. BONUS1_4:
  335. JSR BONUS_HERO_MOVE(PC)
  336. JSR BONUS_BACK_FLASH(PC)
  337. BTST.B #7,ACT_FLAG(A0)
  338. BNE BONUS1_5_1
  339. RTS
  340. BONUS1_5_1:
  341. MOVEQ.L #0,D0
  342. MOVE.B LEVEL(A0),D0
  343. ADD.W D0,D0
  344. MOVE.W B1_SM(PC,D0.W),D0
  345. JSR.S SET_BGM
  346. MOVEQ.L #0,D0
  347. MOVE.B LEVEL(A0),D0
  348. MULU #2500,D0
  349. MOVE.L D0,SCORE_TOTAL(A5)
  350. JMP AFTER_BONUS_0(PC)
  351. B1_SM:
  352. DC.W S_BONUSLOST
  353. DC.W S_SYUGYOU
  354. DC.W S_SYUGYOU
  355. DC.W S_SYUGYOU
  356. DC.W S_BONUSWIN
  357. BONUS_BACK_FLASH:
  358. BCLR.B #3,ACT_FLAG(A0)
  359. BNE BBF_1
  360. BCLR.B #4,ACT_FLAG(A0)
  361. BNE BBF_2
  362. RTS
  363. BBF_1:
  364. COLOR_COMMAND
  365. PALETTE 020H,28H,PG_SET+RGB_COLOR
  366. PALETTE_END
  367. RTS
  368. BBF_2:
  369. COLOR_COMMAND
  370. PALETTE 020H,28H,PG_SET+BASE_COLOR
  371. PALETTE_END
  372. RTS
  373. BONUS_HERO_MOVE:
  374. SUB_WORK WORK_N2,A0,0
  375. MOVEQ.L #0,D0
  376. MOVE.B STEP1(A0),D0
  377. ADD.W D0,D0
  378. ADD.W D0,D0
  379. JMP BHM_VECTOR(PC,D0.W)
  380. BHM_VECTOR:
  381. JMP BHM_PAL_WAIT(PC) 0
  382. JMP BHM_TO_SMALL(PC) 1
  383. JMP BHM_NON(PC) 2
  384. JMP BHM_ICE(PC) 3
  385. JMP BHM_NON(PC) 4
  386. JMP BHM_NON(PC) 5
  387. JMP BHM2_PAL_WAIT1(PC) 6
  388. JMP BHM2_PAL_WAIT2(PC) 7
  389. JMP BHM2_BEER(PC) 8
  390. BHM2_BEER:
  391. MOVE.B ACT_DEC(A0),D0
  392. BLE.S BHM2_BEER_1
  393. MOVE.B ACT_TIMER(A0),D1
  394. SUB.B D0,D1
  395. BGT.S BHM2_BEER_1
  396. MOVEQ.L #00000001B,D0
  397. AND.B ACT_FLAG(A0),D0
  398. BNE.S BHM2_BEER_2
  399. BHM2_BEER_1:
  400. RTS
  401. BHM2_BEER_2:
  402. MOVE.B #5,STEP1(A0)
  403. CLR.B ACT_FLAG(A0)
  404. MOVE.L A6,-(SP)
  405. LEA.L (A0),A6
  406. MOVEQ.L #0,D0
  407. MOVE.B LEVEL(A6),D0
  408. ADD.W D0,D0
  409. ADD.W D0,D0
  410. JSR BEER_MAKE(PC,D0.W)
  411. MOVE.L (SP)+,A6
  412. RTS
  413. BEER_MAKE:
  414. JMP BEER_MAKE1(PC) 0
  415. JMP BEER_MAKE2(PC) 1
  416. JMP BEER_MAKE3(PC) 2
  417. JMP BEER_MAKE4(PC) 3
  418. JMP BEER_MAKE5(PC) 4
  419. JMP BEER_MAKE6(PC) 5
  420. ; BEER_0 kaiten
  421. ; BEER_1 broke 1
  422. ; BEER_2 broke 2
  423. ; BEER_3 broke 3
  424. BEER_MAKE1:
  425. SOUND #S_BINROLL
  426. PCHILD WORK_N0,P_BEER,C_BEER,68H,28H,17,BEER_0
  427. MOVE.W #10,VX(A0)
  428. MOVE.W #2,VY(A0)
  429. MOVE.B #1,BYTE_TIMER(A0)
  430. PCHILD WORK_N0,P_BEER,C_BEER,84H,28H,14,BEER_0
  431. MOVE.W #7,VX(A0)
  432. MOVE.W #1,VY(A0)
  433. MOVE.B #1,ACT_COUNT(A0)
  434. MOVE.B #3,BYTE_TIMER(A0)
  435. PCHILD WORK_N0,P_BEER,C_BEER,0A0H,28H,11,BEER_0
  436. MOVE.W #5,VX(A0)
  437. MOVE.W #5,VY(A0)
  438. MOVE.B #5,BYTE_TIMER(A0)
  439. PCHILD WORK_N0,P_BEER,C_BEER,0BCH,28H,8,BEER_0
  440. MOVE.W #4,VX(A0)
  441. MOVE.W #0,VY(A0)
  442. MOVE.B #7,BYTE_TIMER(A0)
  443. MOVE.B #0,ACT_COUNT(A0)
  444. PCHILD WORK_N0,P_BEER,C_BEER,0D8H,28H,5,BEER_0
  445. MOVE.W #4,VX(A0)
  446. MOVE.W #-1,VY(A0)
  447. MOVE.B #1,ACT_COUNT(A0)
  448. MOVE.B #9,BYTE_TIMER(A0)
  449. RTS
  450. BEER_MAKE2:
  451. SOUND #S_BINROLL
  452. PCHILD WORK_N0,P_BEER,C_BEER,68H,28H,17,BEER_1
  453. MOVE.W #-8,VX(A0)
  454. MOVE.W #10,VY(A0)
  455. MOVE.B #1,BYTE_TIMER(A0)
  456. MOVE.B #-1,WORD_TIMER(A0)
  457. PCHILD WORK_N0,P_BEER,C_BEER,84H,28H,14,BEER_0
  458. MOVE.W #10,VX(A0)
  459. MOVE.W #2,VY(A0)
  460. MOVE.B #3,BYTE_TIMER(A0)
  461. MOVE.B #1,ACT_COUNT(A0)
  462. PCHILD WORK_N0,P_BEER,C_BEER,0A0H,28H,11,BEER_0
  463. MOVE.W #7,VX(A0)
  464. MOVE.W #1,VY(A0)
  465. MOVE.B #5,BYTE_TIMER(A0)
  466. PCHILD WORK_N0,P_BEER,C_BEER,0BCH,28H,8,BEER_0
  467. MOVE.W #5,VX(A0)
  468. MOVE.W #5,VY(A0)
  469. MOVE.B #0,ACT_COUNT(A0)
  470. MOVE.B #7,BYTE_TIMER(A0)
  471. PCHILD WORK_N0,P_BEER,C_BEER,0D8H,28H,5,BEER_0
  472. MOVE.W #4,VX(A0)
  473. MOVE.W #0,VY(A0)
  474. MOVE.B #1,ACT_COUNT(A0)
  475. MOVE.B #9,BYTE_TIMER(A0)
  476. RTS
  477. BEER_MAKE3:
  478. SOUND #S_SYAKIN5
  479. PCHILD WORK_N0,P_BEER,C_BEER,68H,28H,17,BEER_1
  480. MOVE.W #-8,VX(A0)
  481. MOVE.W #12,VY(A0)
  482. MOVE.B #1,BYTE_TIMER(A0)
  483. MOVE.B #-1,WORD_TIMER(A0)
  484. PCHILD WORK_N0,P_BEER,C_BEER,84H,28H,14,BEER_3
  485. MOVE.W #6,VX(A0)
  486. MOVE.W #17,VY(A0)
  487. MOVE.B #1,ACT_COUNT(A0)
  488. MOVE.B #3,BYTE_TIMER(A0)
  489. MOVE.B #1,WORD_TIMER(A0)
  490. PCHILD WORK_N0,P_BEER,C_BEER,0A0H,28H,11,BEER_0
  491. MOVE.W #10,VX(A0)
  492. MOVE.W #2,VY(A0)
  493. MOVE.B #5,BYTE_TIMER(A0)
  494. PCHILD WORK_N0,P_BEER,C_BEER,0BCH,28H,8,BEER_0
  495. MOVE.W #7,VX(A0)
  496. MOVE.W #1,VY(A0)
  497. MOVE.B #0,ACT_COUNT(A0)
  498. MOVE.B #7,BYTE_TIMER(A0)
  499. PCHILD WORK_N0,P_BEER,C_BEER,0D8H,28H,5,BEER_0
  500. MOVE.W #5,VX(A0)
  501. MOVE.W #5,VY(A0)
  502. MOVE.B #1,ACT_COUNT(A0)
  503. MOVE.B #9,BYTE_TIMER(A0)
  504. RTS
  505. BEER_MAKE4:
  506. SOUND #S_SYAKIN5
  507. PCHILD WORK_N0,P_BEER,C_BEER,68H,28H,17,BEER_1
  508. MOVE.W #-8,VX(A0)
  509. MOVE.W #12,VY(A0)
  510. MOVE.B #1,BYTE_TIMER(A0)
  511. MOVE.B #-1,WORD_TIMER(A0)
  512. PCHILD WORK_N0,P_BEER,C_BEER,84H,28H,14,BEER_3
  513. MOVE.W #6,VX(A0)
  514. MOVE.W #17,VY(A0)
  515. MOVE.B #3,BYTE_TIMER(A0)
  516. MOVE.B #0,WORD_TIMER(A0)
  517. MOVE.B #1,ACT_COUNT(A0)
  518. PCHILD WORK_N0,P_BEER,C_BEER,0A0H,28H,11,BEER_1
  519. MOVE.W #2,VX(A0)
  520. MOVE.W #20,VY(A0)
  521. MOVE.B #5,BYTE_TIMER(A0)
  522. MOVE.B #1,WORD_TIMER(A0)
  523. PCHILD WORK_N0,P_BEER,C_BEER,0BCH,28H,8,BEER_0
  524. MOVE.W #10,VX(A0)
  525. MOVE.W #2,VY(A0)
  526. MOVE.B #7,BYTE_TIMER(A0)
  527. MOVE.B #0,ACT_COUNT(A0)
  528. PCHILD WORK_N0,P_BEER,C_BEER,0D8H,28H,5,BEER_0
  529. MOVE.W #7,VX(A0)
  530. MOVE.W #1,VY(A0)
  531. MOVE.B #1,ACT_COUNT(A0)
  532. MOVE.B #9,BYTE_TIMER(A0)
  533. RTS
  534. BEER_MAKE5:
  535. SOUND #S_SYAKIN2
  536. PCHILD WORK_N0,P_BEER,C_BEER,68H,28H,17,BEER_1
  537. MOVE.W #-8,VX(A0)
  538. MOVE.W #8,VY(A0)
  539. MOVE.B #1,BYTE_TIMER(A0)
  540. MOVE.B #-1,WORD_TIMER(A0)
  541. PCHILD WORK_N0,P_BEER,C_BEER,84H,28H,14,BEER_3
  542. MOVE.W #6,VX(A0)
  543. MOVE.W #15,VY(A0)
  544. MOVE.B #3,BYTE_TIMER(A0)
  545. MOVE.B #1,WORD_TIMER(A0)
  546. MOVE.B #1,ACT_COUNT(A0)
  547. PCHILD WORK_N0,P_BEER,C_BEER,0A0H,28H,11,BEER_1
  548. MOVE.W #2,VX(A0)
  549. MOVE.W #20,VY(A0)
  550. MOVE.B #5,BYTE_TIMER(A0)
  551. MOVE.B #0,WORD_TIMER(A0)
  552. PCHILD WORK_N0,P_BEER,C_BEER,0BCH,28H,8,BEER_2
  553. MOVE.W #-6,VX(A0)
  554. MOVE.W #13,VY(A0)
  555. MOVE.B #7,BYTE_TIMER(A0)
  556. MOVE.B #1,WORD_TIMER(A0)
  557. MOVE.B #0,ACT_COUNT(A0)
  558. PCHILD WORK_N0,P_BEER,C_BEER,0D8H,28H,5,BEER_0
  559. MOVE.W #10,VX(A0)
  560. MOVE.W #2,VY(A0)
  561. MOVE.B #1,ACT_COUNT(A0)
  562. MOVE.B #5,BYTE_TIMER(A0)
  563. RTS
  564. BEER_MAKE6:
  565. SOUND #S_SYAKIN2
  566. PCHILD WORK_N0,P_BEER,C_BEER,68H,28H,17,BEER_1
  567. MOVE.W #-8,VX(A0)
  568. MOVE.W #10,VY(A0)
  569. MOVE.B #1,BYTE_TIMER(A0)
  570. MOVE.B #-1,WORD_TIMER(A0)
  571. PCHILD WORK_N0,P_BEER,C_BEER,84H,28H,14,BEER_3
  572. MOVE.W #6,VX(A0)
  573. MOVE.W #14,VY(A0)
  574. MOVE.B #3,BYTE_TIMER(A0)
  575. MOVE.B #1,WORD_TIMER(A0)
  576. MOVE.B #1,ACT_COUNT(A0)
  577. PCHILD WORK_N0,P_BEER,C_BEER,0A0H,28H,11,BEER_1
  578. MOVE.W #2,VX(A0)
  579. MOVE.W #17,VY(A0)
  580. MOVE.B #5,BYTE_TIMER(A0)
  581. MOVE.B #0,WORD_TIMER(A0)
  582. PCHILD WORK_N0,P_BEER,C_BEER,0BCH,28H,8,BEER_2
  583. MOVE.W #-6,VX(A0)
  584. MOVE.W #13,VY(A0)
  585. MOVE.B #7,BYTE_TIMER(A0)
  586. MOVE.B #-1,WORD_TIMER(A0)
  587. MOVE.B #0,ACT_COUNT(A0)
  588. PCHILD WORK_N0,P_BEER,C_BEER,0D8H,28H,5,BEER_3
  589. MOVE.W #8,VX(A0)
  590. MOVE.W #10,VY(A0)
  591. MOVE.B #1,ACT_COUNT(A0)
  592. MOVE.B #9,BYTE_TIMER(A0)
  593. MOVE.B #1,WORD_TIMER(A0)
  594. RTS
  595. BHM2_PAL_WAIT1:
  596. MOVE.B #7,STEP1(A0)
  597. RTS
  598. BHM2_PAL_WAIT2:
  599. PAL_WAIT 0E3H
  600. MOVE.B #1,ACT_DEC(A0)
  601. MOVE.B #5,STEP1(A0)
  602. RTS
  603. BHM_PAL_WAIT:
  604. ; PAL_WAIT 0EFH
  605. MOVE.B #1,STEP1(A0)
  606. BHM_NON:
  607. RTS
  608. BHM_TO_SMALL:
  609. MOVEP.W WORK_N0(A0),D0
  610. CLR.B D0
  611. LEA.L 0(A5,D0.W),A1
  612. SUBQ.B #1,BIG_Y(A1)
  613. SUBQ.B #1,BIG_X(A1)
  614. SUBQ.B #1,BIG_Y(A0)
  615. SUBQ.B #1,BIG_X(A0)
  616. CMP.B #0A6H,BIG_X(A0)
  617. BNE.S BHM_TO_SMALL_1
  618. MOVE.B #4,PRIORITY(A0)
  619. MOVE.B #3,PRIORITY(A1)
  620. MOVE.B #2,STEP1(A0)
  621. MOVE.W #0FFFFH,BIG_X(A0)
  622. MOVE.W #0FFFFH,BIG_X(A1)
  623. MOVE.B #1,ACT_DEC(A0)
  624. MOVE.B #1,ACT_DEC(A1)
  625. BHM_TO_SMALL_1:
  626. RTS
  627. BHM_ICE:
  628. MOVEP.W WORK_N0(A0),D0
  629. CLR.B D0
  630. LEA.L 0(A5,D0.W),A1
  631. MOVE.B ACT_DEC(A0),D0
  632. BLE.S BHM_ICE_1
  633. MOVE.B ACT_TIMER(A0),D1
  634. SUB.B D0,D1
  635. BGT.S BHM_ICE_1
  636. BTST.B #0,ACT_FLAG(A0)
  637. BNE.S BHM_ICE_2
  638. BTST.B #1,ACT_FLAG(A0)
  639. BNE.S BHM_ICE_3
  640. BHM_ICE_1:
  641. RTS
  642. BHM_ICE_2:
  643. MOVE.B #1,ACT_DEC(A1)
  644. BTST.B #2,ACT_FLAG(A0)
  645. BNE CRASH_MAKE
  646. RTS
  647. BHM_ICE_3:
  648. MOVE.B PRIORITY(A0),D0
  649. ADDQ.B #1,D0
  650. MOVE.B D0,PRIORITY(A1)
  651. RTS
  652. CRASH_MAKE:
  653. MOVEM.L A0-A1,-(SP)
  654. PCHILD LW_D4,P_EASY,C_ICE_CRASH,160,0B0H,8,0
  655. MOVEM.L (SP)+,A0-A1
  656. ICE_MAKE:
  657. RTS
  658. PM_ICE:
  659. RTS
  660. INIT_BONUS2:
  661. MOVE.W #7FFFH,COLOR_BUFFER+1FFEH(A5)
  662. COLOR_COMMAND
  663. PALETTE 000H,00H,PG_SET+BASE_COLOR
  664. PALETTE 020H,28H,PG_SET+BASE_COLOR
  665. PALETTE 0E0H,26H,PG_SET+FADE_COLOR
  666. PALETTE 0FFH,00H,BASE_COLOR
  667. PALETTE_END
  668. MOVE.W #500H,D0
  669. MOVE.B LSPC_MODE_STORE+1(A5),D0
  670. BCLR.L #3,D0 auto action on
  671. MOVE.W D0,LSPC_MODE_STORE(A5)
  672. MOVE.W D0,LSPC_MODE
  673. MESS_ON
  674. MOVE.L #M_FIX_CLEAR,(A0)+
  675. MESS_OFF
  676. OBJ_MAP DEMO_OBJ_MAP
  677. CLR.L WINDOW_X(A5)
  678. CLR.L WINDOW_Y(A5)
  679. STEP_SAVE 0,BONUS2_0
  680. RTS
  681. BONUS2_DEMO_0:
  682. PAL_WAIT 0FFH
  683. PCHILD WORK_N0,P_EASY,C_BONUS1_BACK,0,0,1,0
  684. PCHILD WORK_N2,P_EASY,C_BONUS2_DEMO,160,0B0H,3,0
  685. MOVE.B #6,STEP1(A0)
  686. COLOR_COMMAND
  687. PALETTE 0E0H,00H,FADE_IN+CC_SPEED2
  688. PALETTE 0E1H,00H,FADE_IN+CC_SPEED2
  689. PALETTE 0E3H,00H,FADE_IN+CC_SPEED0
  690. PALETTE_END
  691. END_NEXT 2,BONUS2_DEMO_2
  692. BONUS2_DEMO_2:
  693. JSR BONUS_HERO_MOVE(PC)
  694. BTST.B #5,ACT_FLAG(A0)
  695. NEXT_CHECK BNE,3,BONUS2_DEMO_3
  696. SUB_WORK WORK_N2,A0,0
  697. MOVE.B #5,LEVEL(A0)
  698. MOVE.B #8,STEP1(A0)
  699. RTS
  700. BONUS2_DEMO_3:
  701. JSR BONUS_HERO_MOVE(PC)
  702. JSR BONUS_BACK_FLASH(PC)
  703. BTST.B #6,ACT_FLAG(A0)
  704. NEXT_CHECK BNE,4,BONUS2_DEMO_4
  705. COLOR_COMMAND
  706. PALETTE 020H,28H,PG_SET+RGB_OUT+CC_SPEED1
  707. PALETTE 0E0H,26H,PG_SET+RGB_OUT+CC_SPEED1
  708. PALETTE 0FFH,00H,RGB_OUT+CC_SPEED1
  709. PALETTE_END
  710. RTS
  711. BONUS2_DEMO_4:
  712. PAL_WAIT 0EFH
  713. JSR INIT_TI_DEMO(PC)
  714. RTS
  715. BONUS2_0:
  716. PAL_WAIT 0FFH
  717. SOUND #S_KAKIN
  718. SOUND #S_BONUS1
  719. MOVE.W #12H,D0
  720. JSR.S MESS_SET
  721. BSR BONUS_HERO_SET
  722. SEC_TIMER_SET 2,WORD_TIMER
  723. END_NEXT 1,BONUS2_1
  724. BONUS2_1:
  725. SEC_TIMER WORD_TIMER
  726. NEXT_CHECK BCS,2,BONUS2_2
  727. MOVE.B #1,BONUS_STATE_ON(A5)
  728. MOVE.W #0,HERO1+HERO_LIFE(A5)
  729. MOVE.B #16,HERO1+LIFE_GAGE(A5)
  730. MOVE.B #9,STAGE_TIME(A5)
  731. MOVE.B SECOND_VALUE(A5),STAGE_TIME+1(A5)
  732. MOVE.W #13H,D0
  733. JSR.S MESS_SET
  734. MOVE.W #6CH,D0
  735. JSR.S MESS_SET
  736. JSR GAME_TIME_DISP
  737. JSR BONUS_LIFE
  738. MOVE.W #0,FLAME_COUNT(A5)
  739. MOVE.W #3,FLAME_END(A5)
  740. MOVE.W #0,FLAME_TYPE(A5)
  741. MOVE.W #7000H+20H*3+24,FLAME_POS(A5)
  742. MOVE.W #0,COLOR_BUFFER+1FFEH(A5)
  743. COLOR_COMMAND
  744. PALETTE 0FFH,00H,BASE_COLOR
  745. PALETTE_END
  746. PCHILD WORK_N0,P_EASY,C_BONUS1_BACK,0,0,1,0
  747. PCHILD WORK_N1,P_EASY,C_KAKUSI,0,-10H,8,0
  748. PCHILD WORK_N2,P_EASY,C_BONUS2_1P,160,0B0H,3,0
  749. TST.W BONUS_HERO(A5)
  750. BEQ.S BONUS2_1_1
  751. MOVE.W #C_BONUS2_2P,ACT_No(A0)
  752. BONUS2_1_1:
  753. MOVE.B #5,STEP1(A0)
  754. COLOR_COMMAND
  755. PALETTE 0E0H,00H,FADE_IN+CC_SPEED2
  756. PALETTE 0E1H,00H,FADE_IN+CC_SPEED2
  757. PALETTE 0E3H,00H,FADE_IN+CC_SPEED0
  758. PALETTE_END
  759. SEC_TIMER_SET 2,WORD_TIMER
  760. RTS
  761. BONUS2_2:
  762. SEC_TIMER WORD_TIMER
  763. JSR.S FLAME_WRITE
  764. NEXT_CHECK BEQ,3,BONUS2_21
  765. MOVE.W #72*3,D0
  766. JSR.S LANG_SET
  767. RTS
  768. BONUS2_21:
  769. SEC_TIMER WORD_TIMER
  770. NEXT_CHECK BCS,4,BONUS2_30
  771. MOVE.W #0,FLAME_END(A5)
  772. RTS
  773. BONUS2_30:
  774. JSR.S FLAME_CLR
  775. NEXT_CHECK BEQ,4,BONUS2_3
  776. SUB_WORK WORK_N2,A0,0
  777. MOVE.B #1,ACT_DEC(A0)
  778. MOVE.W #2,D0
  779. JSR.S MESS_SET
  780. JSR START_MAKE(PC)
  781. RTS
  782. BONUS2_3:
  783. JSR BONUS2_GAGE(PC)
  784. JSR.S ACTIVE_TRIGER
  785. BTST.L #B_A_BUTTON,D2
  786. BNE.S BONUS2_303
  787. JSR BONUS_HERO_MOVE(PC)
  788. JSR STAGE_TIME_DEC(PC)
  789. TST.B STAGE_TIME(A5)
  790. BEQ.S BONUS2_302
  791. RTS
  792. BONUS2_302:
  793. SUB_WORK WORK_N2,A0,0
  794. MOVE.B #0,LEVEL(A0)
  795. CLR.W HERO1+HERO_LIFE(A5)
  796. JSR BONUS_LIFE
  797. BRA.S BONUS2_304
  798. BONUS2_303:
  799. BSR BONUS2_LEVEL_SET
  800. BONUS2_304:
  801. MOVE.B #00100000B,BONUS_DI(A5)
  802. END_NEXT 5,BONUS2_50
  803. BONUS2_50:
  804. SUB_WORK WORK_N2,A0,0
  805. BTST.B #0,ACT_FLAG(A0)
  806. NEXT_CHECK BNE,6,BONUS2_4
  807. MOVE.W #C_BONUS2_1P_W,ACT_No(A0)
  808. TST.W BONUS_HERO(A5)
  809. BEQ.S BONUS2_3_1
  810. MOVE.W #C_BONUS2_2P_W,ACT_No(A0)
  811. BONUS2_3_1:
  812. MOVE.B #-1,ACT_COUNT(A0)
  813. MOVE.B #-1,ACT_TIMER(A0)
  814. MOVE.B #1,ACT_DEC(A0)
  815. MOVE.B #8,STEP1(A0)
  816. RTS
  817. BONUS2_4:
  818. JSR BONUS_HERO_MOVE(PC)
  819. JSR BONUS_BACK_FLASH(PC)
  820. BTST.B #6,ACT_FLAG(A0)
  821. NEXT_CHECK BNE,5,BONUS2_5
  822. SEC_TIMER_SET 1,WORD_TIMER
  823. RTS
  824. BONUS2_5:
  825. SEC_TIMER WORD_TIMER
  826. BCS.S BONUS2_5_1
  827. RTS
  828. BONUS2_5_1:
  829. SUB_WORK WORK_N2,A0,0
  830. MOVEQ.L #0,D0
  831. MOVE.B LEVEL(A0),D0
  832. ADD.W D0,D0
  833. MOVE.W B2_SM(PC,D0.W),D0
  834. JSR.S SET_BGM
  835. MOVEQ.L #0,D0
  836. MOVE.B LEVEL(A0),D0
  837. MULU #2000,D0
  838. MOVE.L D0,SCORE_TOTAL(A5)
  839. JMP AFTER_BONUS_0(PC)
  840. B2_SM:
  841. DC.W S_SYUGYOU
  842. DC.W S_SYUGYOU
  843. DC.W S_SYUGYOU
  844. DC.W S_SYUGYOU
  845. DC.W S_SYUGYOU
  846. DC.W S_BONUSWIN
  847. BONUS2_LEVEL_SET:
  848. JSR BONUS2_LEVEL_JUDGE(PC)
  849. SUB_WORK WORK_N2,A0,0
  850. MOVE.B D2,LEVEL(A0)
  851. CMP.B #4,D2
  852. BCS.S B2LS_1
  853. MOVE.B #2,BONUS_WIN(A5)
  854. CMP.B #5,D2
  855. BNE.S B2LS_1
  856. MOVE.B #0FFH,BONUS_WIN(A5)
  857. LEA.L STORY_SPIRIT(A5),A3
  858. BSR BONUS_UP_SET
  859. B2LS_1:
  860. RTS
  861. BONUS2_LEVEL_JUDGE:
  862. MOVE.W LEVEL_TEMP(A5),D0
  863. ADD.W D0,D0
  864. ADD.W D0,D0
  865. MOVE.L B2LT(PC,D0.W),A0
  866. MOVEQ.L #0,D2 0
  867. MOVE.B HERO1+HERO_LIFE(A5),D1
  868. SUB.B (A0)+,D1
  869. BCS.S B2LJ_1
  870. ADDQ.W #1,D2 1
  871. SUB.B (A0)+,D1
  872. BCS.S B2LJ_1
  873. ADDQ.W #1,D2 2
  874. SUB.B (A0)+,D1
  875. BCS.S B2LJ_1
  876. ADDQ.W #1,D2 3
  877. SUB.B (A0)+,D1
  878. BCS.S B2LJ_1
  879. ADDQ.W #1,D2 4
  880. SUB.B (A0)+,D1
  881. BCS.S B2LJ_1
  882. ADDQ.W #1,D2 5
  883. B2LJ_1:
  884. RTS
  885. B2LT:
  886. DC.L B2L1
  887. DC.L B2L2
  888. DC.L B2L3
  889. DC.L B2L4
  890. DC.L B2L5
  891. DC.L B2L6
  892. DC.L B2L7
  893. DC.L B2L8
  894. B2L1: DC.B 24,32,24,20,16,12
  895. B2L2: DC.B 28,32,24,20,16,08
  896. B2L3: DC.B 36,32,24,16,12,08
  897. B2L4: DC.B 44,32,24,16,08,04
  898. B2L5: DC.B 50,32,20,16,08,04
  899. B2L6: DC.B 56,24,20,16,08,04
  900. B2L7: DC.B 68,20,16,12,08,04
  901. B2L8: DC.B 84,16,12,08,04,04
  902. BONUS2_GAGE:
  903. MOVE.W BONUS_RANK(A5),D0
  904. MOVE.B BONUS2_LIFE_ADD(PC,D0.W),D0
  905. ADD.B D0,HERO1+HERO_LIFE(A5)
  906. AND.B #7FH,HERO1+HERO_LIFE(A5)
  907. JSR BONUS_LIFE
  908. RTS
  909. BONUS2_LIFE_ADD:
  910. DC.B 2,3,4
  911. DS.W 0
  912. PM_BEER:
  913. JSR MASTER_CHECK(PC)
  914. EASY_CALL
  915. JSR.S GET_REL_POS
  916. JSR.S NEXT_ACTION
  917. JSR.S SORT_SET
  918. RTS
  919. BEER_0:
  920. SUBQ.B #1,BYTE_TIMER(A6)
  921. BEQ.S BEER_01
  922. RTS
  923. BEER_01:
  924. MOVE.B #1,ACT_DEC(A6)
  925. MOVE.B #-1,ACT_TIMER(A6)
  926. END_NEXT 2,BEER_NECK
  927. BEER_1:
  928. SUBQ.B #1,BYTE_TIMER(A6)
  929. BEQ.S BEER_11
  930. RTS
  931. BEER_11:
  932. BSR BEER_SUB
  933. MOVE.B #-1,ACT_COUNT(A6)
  934. END_NEXT 1,BEER_BROKE
  935. BEER_2:
  936. SUBQ.B #1,BYTE_TIMER(A6)
  937. BEQ.S BEER_21
  938. RTS
  939. BEER_21:
  940. BSR BEER_SUB
  941. MOVE.B #1,ACT_COUNT(A6)
  942. END_NEXT 1,BEER_BROKE
  943. BEER_3:
  944. SUBQ.B #1,BYTE_TIMER(A6)
  945. BEQ.S BEER_31
  946. RTS
  947. BEER_31:
  948. BSR BEER_SUB
  949. MOVE.B #3,ACT_COUNT(A6)
  950. END_NEXT 1,BEER_BROKE
  951. BEER_SUB:
  952. PCHILD WORK_N0,P_BEER,C_BEER_NECK,60H,58H,9,BEER_NECK
  953. MOVE.W X_POSITION(A6),X_POSITION(A0)
  954. MOVE.W Y_POSITION(A6),Y_POSITION(A0)
  955. ADD.W #38H,Y_POSITION(A0)
  956. MOVE.B PRIORITY(A6),D0
  957. ADDQ.B #2,D0
  958. MOVE.B D0,PRIORITY(A0)
  959. MOVE.W VX(A6),VX(A0)
  960. MOVE.W VY(A6),VY(A0)
  961. PCHILD WORK_N0,P_BEER,C_BEER_AWA,60H,58H,9,BEER_BROKE
  962. MOVE.W X_POSITION(A6),X_POSITION(A0)
  963. MOVE.W Y_POSITION(A6),Y_POSITION(A0)
  964. MOVE.B PRIORITY(A6),D0
  965. ADDQ.B #1,D0
  966. MOVE.B D0,PRIORITY(A0)
  967. MOVE.B WORD_TIMER(A6),ACT_COUNT(A0)
  968. MOVE.W #C_BEER_BROKE,ACT_No(A6)
  969. MOVE.B #1,ACT_DEC(A6)
  970. MOVE.B #-1,ACT_TIMER(A6)
  971. BEER_BROKE:
  972. RTS
  973. BEER_NECK:
  974. MOVE.W VX(A6),D0
  975. ADD.W X_POSITION(A6),D0
  976. CMP.W #-100,D0
  977. BLE BEER_END
  978. CMP.W #320+100,D0
  979. BGE BEER_END
  980. MOVE.W D0,X_POSITION(A6)
  981. MOVE.L VY(A6),D0
  982. ADD.L Y_POSITION(A6),D0
  983. CMP.L #-800000H,D0
  984. BLE BEER_END
  985. MOVE.L D0,Y_POSITION(A6)
  986. SUB.L #10000H,VY(A6)
  987. RTS
  988. BEER_END:
  989. CLR.W TYPE(A6)
  990. ADDQ.L #4,SP
  991. RTS
  992. INCLUDE WORK.INC
  993.