Routines |
Prev: E179 | Up: Map | Next: E295 |
Used by the routine at RunHandlers.
|
||||
Handler_Humans | E25D | LD B,$10 | B=10 (maximum possible number of on-screen humans). | |
E25F | XOR A | Write 00 to *Flag_Orientation. | ||
E260 | LD ($D247),A | |||
E263 | LD HL,$D255 | HL=Table_Humans. | ||
This entry point is used by the routines at Human_Hiding, Human_Reappearing, Handler_Human_Hide and Handler_Humans_Skip.
|
||||
Handler_Humans_Loop | E266 | PUSH BC | Stash the countdown on the stack. | |
E267 | LD A,(HL) | A=human type. | ||
E268 | INC HL | Increment human table pointer by one. | ||
E269 | AND A | Jump to Handler_Humans_Skip if the currently processed human is not in-use. | ||
E26A | JP Z,Handler_Humans_Skip | |||
E26D | EX AF,AF' | Exchange the AF register with the shadow AF register. | ||
E26E | PUSH HL | Stash the human table pointer on the stack. | ||
Fetch the humans screen co-ordinates and store them in BC.
|
||||
E26F | INC HL | Increment human table pointer by one. | ||
E270 | LD C,(HL) | C=*HL. | ||
E271 | INC HL | Increment human table pointer by one. | ||
E272 | LD B,(HL) | B=*HL. | ||
E273 | LD DE,$0108 | DE=0108 (TODO; probably sprite size 01 byte by 08 lines). | ||
E276 | CALL $E0CF | Call E0CF. | ||
E279 | JR NZ,Controller_Humans | Jump to Controller_Humans if this human is able to be processed (as in, is alive). | ||
This human is no more (RIP) mark this position as no longer viable for holding human data.
|
||||
E27B | POP HL | Restore human table pointer from the stack. | ||
E27C | DEC HL | Decrease the human table pointer by one (back to the "type"). | ||
E27D | XOR A | Mark this human as no longer in-use. | ||
E27E | LD (HL),A | |||
E27F | INC HL | Move the human table pointer to the next human. | ||
E280 | INC HL | |||
E281 | INC HL | |||
E282 | INC HL | |||
E283 | JP Handler_Humans_Next | Jump to Handler_Humans_Next. | ||
Convert the human type to an address from Table_HumanTypes and jump to it.
|
||||
Controller_Humans | E286 | EX AF,AF' | Exchange the AF register with the shadow AF register. | |
E287 | DEC A | Decrease A by one. | ||
E288 | ADD A,A | A*=02. | ||
E289 | LD D,$00 | Create an offset using DE. | ||
E28B | LD E,A | |||
E28C | LD HL,$E556 | HL=Table_HumanTypes+DE. | ||
E28F | ADD HL,DE | |||
E290 | LD A,(HL) | A=*HL. | ||
E291 | INC HL | Increment HL by one. | ||
E292 | LD H,(HL) | H=*HL. | ||
E293 | LD L,A | L=A. | ||
E294 | JP (HL) | Jump to *HL. |
Prev: E179 | Up: Map | Next: E295 |