Generation_Event_Execution: LD A, $mem_floor_count LD D, A LD HL, $mem_dungeon_generation_events .loop: LD A, (HL+) AND A JR Z, =.skip CP D JR NZ, =.skip LD A, (HL+) PUSH HL PUSH DE LD BC, =Generation_Event_Jump_Table .JUMP_TABLE POP DE POP HL .skip: LD A, L AND $f8 ADD $08 LD L, A AND A JR NZ, =.loop RET Generation_Event_Jump_Table: ; 00 RET NOP NOP NOP ; 01 JP =.Dialogue_Script NOP ; 02 JP =.Remove_Stairs NOP ; 03 JP =.Load_Entity NOP ; 04 JP =.Entity_Random_Room NOP ; 05 JP =.Entity_XY NOP .Dialogue_Script: LD A, $enum_dungeon_dialogue_mode LD $mem_requested_mode, A LD A, (HL+) LD $mem_dialogue_script_bank, A LD A, (HL+) LD ($mem_dialogue_script_program_counter), A LD A, (HL) LD ($mem_dialogue_script_program_counter+1), A JP =Dialogue_script_step .Load_Entity: LD A, (HL+) LD E, A LD D, $00 LD A, (HL) LD HL, $mem_loaded_entities_indices ADD HL, DE LD (HL), A RET .Entity_Random_Room: LD A, $01 LD $tmp_var_3, A LD D, (HL) CALL =FindFreeEntity LD A, D JP =Initialize_Entity .Entity_XY: LD A, (HL+) LD D, A LD A, (HL+) LD B, A LD A, (HL+) LD C, A LD A, (HL) DBG SWAP A OR $02 LD $tmp_var_3, A CALL =FindFreeEntity LD A, D JP =Initialize_Entity .Remove_Stairs: LD HL, $mem_object_list LD (HL), $00 RET