![]() |
Routines |
| Prev: 44751 | Up: Map | Next: 44993 |
|
Used by the routine at GamePlayEntry.
|
||||
| GamePlay_Start | 44783 | CALL StoreEntity | Call StoreEntity. | |
| 44786 | CALL 41356 | Call 41356. | ||
|
Is Sabreman yellow?
|
||||
| 44789 | LD A,(IX+5) | A=IX+5 (entity colour). | ||
| 44792 | CP 70 | If the colour is 70 jump to HandlerYellowOrchid. | ||
| 44794 | JR Z,HandlerYellowOrchid | |||
| 44796 | CALL HandlerOrchidTimer | Call HandlerOrchidTimer. | ||
| 44799 | LD A,16 | Write 16 to 38573. | ||
| 44801 | LD (38573),A | |||
| 44804 | LD A,(IX+2) | |||
| 44807 | AND A | |||
| 44808 | JP NZ,43397 | |||
| 44811 | LD DE,0 | DE=0000. | ||
| 44814 | CALL HandlerControls | Call HandlerControls. | ||
|
Is Sabreman magenta?
|
||||
| 44817 | LD A,(IX+5) | A=IX+5 (entity colour). | ||
| 44820 | CP 67 | If the colour is not 67 jump to GamePlay_Controls. | ||
| 44822 | JR NZ,GamePlay_Controls | |||
|
Handles reversing the controls as a result of the magenta orchid.
|
||||
| 44824 | LD A,C | A=C. | ||
| 44825 | XOR %00001111 | |||
| 44827 | LD C,A | C=A. | ||
|
This entry point is used by the routine at 44596.
|
||||
| GamePlay_Controls | 44828 | LD A,C | A=C. | |
| 44829 | LD (38572),A | Write A to 38572. | ||
| 44832 | LD A,E | A=E. | ||
| 44833 | LD B,7 | B=7. | ||
| 44835 | BIT 1,C | |||
| 44837 | JR Z,GamePlay_Start_0 | |||
| 44839 | ADD A,B | |||
| GamePlay_Start_0 | 44840 | BIT 0,C | ||
| 44842 | JR Z,GamePlay_Start_1 | |||
| 44844 | SUB B | |||
| GamePlay_Start_1 | 44845 | LD E,A | ||
| 44846 | LD A,D | |||
| 44847 | BIT 3,C | |||
| 44849 | JR Z,GamePlay_Start_2 | |||
| 44851 | ADD A,B | |||
| GamePlay_Start_2 | 44852 | BIT 2,C | ||
| 44854 | JR Z,GamePlay_Start_3 | |||
| 44856 | SUB B | |||
| GamePlay_Start_3 | 44857 | LD D,A | ||
| 44858 | CALL GamePlay_Start_7 | Call GamePlay_Start_7. | ||
| 44861 | CALL 45032 | Call 45032. | ||
| 44864 | LD BC,5646 | BC=5646. | ||
| 44867 | CALL 47132 | Call 47132. | ||
| 44870 | CALL 45139 | Call 45139. | ||
| 44873 | CALL 43757 | Call 43757. | ||
| 44876 | LD (IX+3),E | |||
| 44879 | LD (IX+4),D | |||
| 44882 | CALL NZ,48971 | |||
|
Is Sabreman white?
|
||||
| 44885 | LD A,(IX+5) | A=IX+5 (entity colour). | ||
| 44888 | CP 71 | If the colour is not 71 jump to GamePlay_Start_4. | ||
| 44890 | JR NZ,GamePlay_Start_4 | |||
| 44892 | LD A,(38572) | |||
| 44895 | BIT 4,A | |||
| 44897 | JR Z,GamePlay_Start_4 | |||
| 44899 | CALL 44479 | Call 44479. | ||
| GamePlay_Start_4 | 44902 | LD A,(IX+6) | ||
| 44905 | LD B,1 | B=1. | ||
| 44907 | CALL 45127 | Call 45127. | ||
| 44910 | LD (IX+6),A | |||
| 44913 | LD A,(IX+7) | |||
| 44916 | CALL 45127 | Call 45127. | ||
| 44919 | LD (IX+7),A | |||
|
This entry point is used by the routine at HandlerYellowOrchid_StandUp.
|
||||
| GamePlay_Start_5 | 44922 | CALL DisplayEntity | Call DisplayEntity. | |
| 44925 | LD A,(38576) | A=OrchidEffectTimer. | ||
| 44928 | AND A | If A is zero, jump to 47908. | ||
| 44929 | JP Z,47908 | |||
| 44932 | CP 47 | Is A 47? | ||
| 44934 | JP NC,47908 | |||
| 44937 | AND %00001111 | Keep only bits 0-3. | ||
| 44939 | CP 8 | |||
| 44941 | JR NC,GamePlay_Start_6 | |||
| 44943 | AND %00000111 | Keep only bits 0-2. | ||
| 44945 | CALL Z,48838 | |||
| 44948 | LD A,(IX+5) | |||
| 44951 | PUSH AF | |||
| 44952 | LD (IX+5),71 | Set IX+5 (entity colour) to 71 (white). | ||
| 44956 | CALL 47908 | Call 47908. | ||
| 44959 | POP AF | |||
| 44960 | LD (IX+5),A | |||
| 44963 | RET | Return. | ||
| GamePlay_Start_6 | 44964 | AND %00000111 | Keep only bits 0-2. | |
| 44966 | CALL Z,48838 | |||
| 44969 | JP 47908 | Jump to 47908. | ||
| GamePlay_Start_7 | 44972 | LD A,E | ||
| 44973 | ADD A,(IX+6) | |||
| 44976 | CALL 44993 | Call 44993. | ||
| 44979 | LD (IX+6),A | |||
| 44982 | LD A,D | |||
| 44983 | ADD A,(IX+7) | |||
| 44986 | CALL 44993 | Call 44993. | ||
| 44989 | LD (IX+7),A | |||
| 44992 | RET | Return. | ||
| Prev: 44751 | Up: Map | Next: 44993 |