Prev: 7EC5 Up: Map Next: 807A
7EE6: Handler address for each actor type
202 addresses, indexed by an actor's +$00 byte, used by DISPATCH_ACTOR. Entries come in runs of two or four because the low bits of +$00 are the animation frame rather than part of the identity -- $5C and $5D are the two frames of one creature and share a handler, as do $58 to $5B.
The first three runs are the playable characters -- $01-$10 knight, $11-$20 wizard, $21-$30 serf -- sixteen sprite codes each, which is what makes "below $31" mean "is a player" in CHECK_HIT. Confirmed by starting a game as each of the three in turn and reading the player's sprite byte back: $08, $18 and $28, the same offset into each band.
Checked against the running game: the monster at $EE80 had sprite byte $5C, the table entry two bytes into ACTOR_HANDLERS + $5C * 2 reads MOVE_ACTOR, and a breakpoint at MOVE_ACTOR does fire with IX pointing at that monster.
ACTOR_HANDLERS 7EE6 DEFW INERT_SPRITE
7EE8 DEFW UPDATE_KNIGHT
7EEA DEFW UPDATE_KNIGHT
7EEC DEFW UPDATE_KNIGHT
7EEE DEFW UPDATE_KNIGHT
7EF0 DEFW UPDATE_KNIGHT
7EF2 DEFW UPDATE_KNIGHT
7EF4 DEFW UPDATE_KNIGHT
7EF6 DEFW UPDATE_KNIGHT
7EF8 DEFW UPDATE_KNIGHT
7EFA DEFW UPDATE_KNIGHT
7EFC DEFW UPDATE_KNIGHT
7EFE DEFW UPDATE_KNIGHT
7F00 DEFW UPDATE_KNIGHT
7F02 DEFW UPDATE_KNIGHT
7F04 DEFW UPDATE_KNIGHT
7F06 DEFW UPDATE_KNIGHT
7F08 DEFW UPDATE_WIZARD
7F0A DEFW UPDATE_WIZARD
7F0C DEFW UPDATE_WIZARD
7F0E DEFW UPDATE_WIZARD
7F10 DEFW UPDATE_WIZARD
7F12 DEFW UPDATE_WIZARD
7F14 DEFW UPDATE_WIZARD
7F16 DEFW UPDATE_WIZARD
7F18 DEFW UPDATE_WIZARD
7F1A DEFW UPDATE_WIZARD
7F1C DEFW UPDATE_WIZARD
7F1E DEFW UPDATE_WIZARD
7F20 DEFW UPDATE_WIZARD
7F22 DEFW UPDATE_WIZARD
7F24 DEFW UPDATE_WIZARD
7F26 DEFW UPDATE_WIZARD
7F28 DEFW UPDATE_SERF
7F2A DEFW UPDATE_SERF
7F2C DEFW UPDATE_SERF
7F2E DEFW UPDATE_SERF
7F30 DEFW UPDATE_SERF
7F32 DEFW UPDATE_SERF
7F34 DEFW UPDATE_SERF
7F36 DEFW UPDATE_SERF
7F38 DEFW UPDATE_SERF
7F3A DEFW UPDATE_SERF
7F3C DEFW UPDATE_SERF
7F3E DEFW UPDATE_SERF
7F40 DEFW UPDATE_SERF
7F42 DEFW UPDATE_SERF
7F44 DEFW UPDATE_SERF
7F46 DEFW UPDATE_SERF
7F48 DEFW PUT_DOWN
7F4A DEFW INERT_SPRITE
7F4C DEFW INERT_SPRITE
7F4E DEFW SPIN_SPELL
7F50 DEFW SPIN_SPELL
7F52 DEFW SPIN_SPELL
7F54 DEFW SPIN_SPELL
7F56 DEFW AIM_SWORD
7F58 DEFW AIM_SWORD
7F5A DEFW AIM_SWORD
7F5C DEFW AIM_SWORD
7F5E DEFW AIM_SWORD
7F60 DEFW AIM_SWORD
7F62 DEFW AIM_SWORD
7F64 DEFW AIM_SWORD
7F66 DEFW SPIN_AXE
7F68 DEFW SPIN_AXE
7F6A DEFW SPIN_AXE
7F6C DEFW SPIN_AXE
7F6E DEFW SPIN_AXE
7F70 DEFW SPIN_AXE
7F72 DEFW SPIN_AXE
7F74 DEFW SPIN_AXE
7F76 DEFW INERT_SPRITE
7F78 DEFW INERT_SPRITE
7F7A DEFW INERT_SPRITE
7F7C DEFW INERT_SPRITE
7F7E DEFW MOVE_ACTOR
7F80 DEFW MOVE_ACTOR
7F82 DEFW MOVE_BAT
7F84 DEFW MOVE_BAT
7F86 DEFW EAT_FOOD
7F88 DEFW EAT_FOOD
7F8A DEFW EAT_FOOD
7F8C DEFW EAT_FOOD
7F8E DEFW EAT_FOOD
7F90 DEFW EAT_FOOD
7F92 DEFW EAT_FOOD
7F94 DEFW EAT_FOOD
7F96 DEFW SPAWN_MONSTER
7F98 DEFW SPAWN_MONSTER
7F9A DEFW SPAWN_MONSTER
7F9C DEFW SPAWN_MONSTER
7F9E DEFW MOVE_ACTOR
7FA0 DEFW MOVE_ACTOR
7FA2 DEFW MOVE_HOPPER
7FA4 DEFW MOVE_HOPPER
7FA6 DEFW MOVE_FACE
7FA8 DEFW MOVE_FACE
7FAA DEFW MOVE_GHOST
7FAC DEFW MOVE_GHOST
7FAE DEFW SOUND_CAUGHT
7FB0 DEFW SOUND_NEW_ROOM
7FB2 DEFW MATERIALISING
7FB4 DEFW DYING
7FB6 DEFW MOVE_HOPPER
7FB8 DEFW MOVE_HOPPER
7FBA DEFW MOVE_ARCS
7FBC DEFW MOVE_ARCS
7FBE DEFW COUNTDOWN_ACTOR
7FC0 DEFW COUNTDOWN_ACTOR
7FC2 DEFW COUNTDOWN_ACTOR
7FC4 DEFW COUNTDOWN_ACTOR
7FC6 DEFW MOVE_MUMMY
7FC8 DEFW MOVE_MUMMY
7FCA DEFW MOVE_MUMMY
7FCC DEFW MOVE_MUMMY
7FCE DEFW MOVE_FRANKENSTEIN
7FD0 DEFW MOVE_FRANKENSTEIN
7FD2 DEFW MOVE_FRANKENSTEIN
7FD4 DEFW MOVE_FRANKENSTEIN
7FD6 DEFW MOVE_DEVIL
7FD8 DEFW MOVE_DEVIL
7FDA DEFW MOVE_DEVIL
7FDC DEFW MOVE_DEVIL
7FDE DEFW MOVE_DRACULA
7FE0 DEFW MOVE_DRACULA
7FE2 DEFW MOVE_DRACULA
7FE4 DEFW MOVE_DRACULA
7FE6 DEFW PICK_UP
7FE8 DEFW PICK_UP
7FEA DEFW PICK_UP
7FEC DEFW PICK_UP
7FEE DEFW PICK_UP
7FF0 DEFW PICK_UP
7FF2 DEFW PICK_UP
7FF4 DEFW PICK_UP
7FF6 DEFW PICK_UP
7FF8 DEFW PICK_UP
7FFA DEFW PICK_UP
7FFC DEFW PICK_UP
7FFE DEFW PICK_UP
8000 DEFW PICK_UP
8002 DEFW PICK_UP
8004 DEFW GRAVESTONE
8006 DEFW MOVE_WITCH
8008 DEFW MOVE_WITCH
800A DEFW MOVE_WITCH
800C DEFW MOVE_WITCH
800E DEFW MOVE_FACING_FLYER
8010 DEFW MOVE_FACING_FLYER
8012 DEFW MOVE_FACING_FLYER
8014 DEFW MOVE_FACING_FLYER
8016 DEFW MOVE_FACING_FLYER
8018 DEFW MOVE_FACING_FLYER
801A DEFW MOVE_FACING_FLYER
801C DEFW MOVE_FACING_FLYER
801E DEFW MOVE_HUMPBACK
8020 DEFW MOVE_HUMPBACK
8022 DEFW MOVE_HUMPBACK
8024 DEFW MOVE_HUMPBACK
8026 DEFW SOUND_EATING
8028 DEFW MUSHROOM
802A DEFW INERT_SPRITE
802C DEFW DOOR
802E DEFW DOOR
8030 DEFW BIG_DOOR
8032 DEFW INERT_SPRITE
8034 DEFW INERT_SPRITE
8036 DEFW INERT_SPRITE
8038 DEFW INERT_SPRITE
803A DEFW DOOR_LOCKED_A
803C DEFW DOOR_LOCKED_A
803E DEFW DOOR_LOCKED_A
8040 DEFW DOOR_LOCKED_A
8042 DEFW DOOR_LOCKED_B
8044 DEFW DOOR_LOCKED_B
8046 DEFW DOOR_LOCKED_B
8048 DEFW DOOR_LOCKED_B
804A DEFW DOOR_KNIGHT
804C DEFW DRAW_DOOR
804E DEFW DRAW_DOOR
8050 DEFW INERT_SPRITE
8052 DEFW INERT_SPRITE
8054 DEFW DRAW_DOOR
8056 DEFW DRAW_DOOR
8058 DEFW DOOR_WIZARD
805A DEFW TRAPDOOR_CLOSED
805C DEFW TRAPDOOR
805E DEFW DOOR_SERF
8060 DEFW DRAW_DOOR
8062 DEFW DRAW_DOOR
8064 DEFW DRAW_DOOR
8066 DEFW DRAW_DOOR
8068 DEFW INERT_SPRITE
806A DEFW TIMED_DOOR_SHUT
806C DEFW TIMED_DOOR_OPEN
806E DEFW TIMED_DOOR_SHUT
8070 DEFW TIMED_DOOR_OPEN
8072 DEFW ACG_DOOR
8074 DEFW DRAW_DOOR
8076 DEFW DRAW_DOOR
8078 DEFW DRAW_DOOR
Prev: 7EC5 Up: Map Next: 807A