ret
; debug new game routine
+ ; but load with a known hard-coded seed
; returns:
; bc: new state
debug_fn_new_game:
+ ld a, 15
+ ld [srand], a
+ ld [srand+1], a
+
+ call new_game_init
ld bc, st_update_game
ret
debug_fn_clear_actors:
ld bc, st_update_game
ret
+
+
.def int DIRLEFT = BTNLEFT
.def int DIRRIGHT = BTNRIGHT
+
+; mapgen flags
+.se 1
+.de MAPGEN_F_NO_ACT_SG, 1
; clears act_save
; also places initial door locations
mapgen_init:
+ ; disable act sg
+ ld a, [mapgen_flags]
+ or a, MAPGEN_F_NO_ACT_SG
+ ld [mapgen_flags], a
+
call act_save_init
call mapgen_seed
call mapgen_make_doors
call mapgen_select_player_spawn
+
+ ; re-enable act sg
+ xor a, a
+ ld [mapgen_flags], a
ret
; selects a room pattern table
; srand
mapgen:
call map_load_start
+
+ ld a, [mapgen_flags]
+ and a, MAPGEN_F_NO_ACT_SG
+ call z, act_sg_store
- call act_sg_store
; load seed
; and back it up
ld a, [srand]
ld b, a
ld [srand], a
- call act_sg_restore
+ ld a, [mapgen_flags]
+ and a, MAPGEN_F_NO_ACT_SG
+ call z, act_sg_restore
call map_load_end
; > 0 if an actor has an ongoing attack
; used to delay other actors during the animation
-gpf_attack_ongoing: .adv 0
+gpf_attack_ongoing: .adv 1
+
+ ; mapgen flags
+mapgen_flags: .adv 1
; can be used for custom state transtions