BOOL gamecore_init(const char *path) { const char *e; e = NULL; ZeroMemory(&gamecore, sizeof(gamecore)); if (path == NULL) { e = "no suf file (NULL)"; goto gcinit_err; } gamedef_create(); if (archive_create()) { e = "couldn't read archives"; goto gcinit_err; } readsuf(path); gamecfg_init(); gamecfg_reset(); gamecfg_load(); gamecore.cfglist = listarray_new(sizeof(_GCDLG), 32); if (vramdraw_create() != SUCCESS) { e = "couldn't create vram"; goto gcinit_err; } if (scr_init(gamecore.sys.defbits, gamecore.sys.defflags) != SUCCESS) { e = "couldn't create flags"; goto gcinit_err; } sndplay_init(); gamecore.dispwin.fontsize = 16; gamecore.dispwin.fonttype = TEXTCTRL_BOLD | ((gamecore.sys.type & GAME_TEXTASCII)?TEXTCTRL_ASCII:0); textctrl_init(&gamecore.textdraw); textwin_create(); event_mousereset(); if (gamecore.sys.type & GAME_DRS) { savedrs_sysread(); } if (scr_scriptcall("START")) { e = "couldn't reat start script"; goto gcinit_err; } gamecore.initialized = TRUE; return(SUCCESS); gcinit_err: gamecore.err = e; return(FAILURE); }
scr_set(const char *file) { T((T_CALLED("scr_set(%s)"), _nc_visbuf(file))); if (scr_init(file) == ERR) { returnCode(ERR); } else { delwin(newscr); SP->_newscr = newscr = dupwin(curscr); returnCode(OK); } }
static int load_screen(char *filename) { int result; if (use_init) { if ((result = scr_init(filename)) != ERR) result = scr_restore(filename); } else { result = scr_set(filename); } return result; }
scr_set(const char *file) { T((T_CALLED("scr_set(%s)"), _nc_visbuf(file))); if (scr_init(file) == ERR) { returnCode(ERR); } else { delwin(newscr); SP->_newscr = dupwin(curscr); #if !USE_REENTRANT newscr = SP->_newscr; #endif returnCode(OK); } }