diff --git a/include/extern.h b/include/extern.h index 67fc2292d..c8140e68e 100644 --- a/include/extern.h +++ b/include/extern.h @@ -510,6 +510,7 @@ extern void destroy_drawbridge(coordxy, coordxy); /* ### decl.c ### */ +extern void program_state_init(void); extern void decl_globals_init(void); extern void sa_victual(volatile struct victual_info *); diff --git a/src/allmain.c b/src/allmain.c index efa2e42e7..5a05add72 100644 --- a/src/allmain.c +++ b/src/allmain.c @@ -32,6 +32,7 @@ staticfn void interrupt_multi(const char *); void early_init(int argc USED_FOR_CRASHREPORT, char *argv[] USED_FOR_CRASHREPORT) { + program_state_init(); #ifdef CRASHREPORT /* Do this as early as possible, but let ports do other things first. */ crashreport_init(argc, argv); diff --git a/src/decl.c b/src/decl.c index f229de737..66f3d060e 100644 --- a/src/decl.c +++ b/src/decl.c @@ -1063,6 +1063,12 @@ const struct const_globals cg = { } \ } while(0); +void +program_state_init(void) +{ + program_state = init_program_state; +} + void decl_globals_init(void) { @@ -1114,7 +1120,6 @@ decl_globals_init(void) svu = init_svu; svx = init_svx; svy = init_svy; - program_state = init_program_state; gv.valuables[0].list = gg.gems; gv.valuables[0].size = SIZE(gg.gems);