diff options
author | Paul Gilbert | 2019-06-21 19:20:58 -0700 |
---|---|---|
committer | Paul Gilbert | 2019-06-22 14:40:50 -0700 |
commit | dd4108e7c79770ec8235bd4440e0cdc06becd9d9 (patch) | |
tree | c41d06548ac4c4fbb037b733c1cdab519822204c /engines/glk/alan2/exe.cpp | |
parent | 8f75589971d70b2ca749d5389a332e6761213a5b (diff) | |
download | scummvm-rg350-dd4108e7c79770ec8235bd4440e0cdc06becd9d9.tar.gz scummvm-rg350-dd4108e7c79770ec8235bd4440e0cdc06becd9d9.tar.bz2 scummvm-rg350-dd4108e7c79770ec8235bd4440e0cdc06becd9d9.zip |
GLK: ALAN2: Removing all the existing system specific ifdef blocks
I'm going to be shortly formatting the code and doing refactoring
to work around the setjmp calls in the original, so there's little
point in keeping the system specific ifdef blocks from the original
Diffstat (limited to 'engines/glk/alan2/exe.cpp')
-rw-r--r-- | engines/glk/alan2/exe.cpp | 204 |
1 files changed, 5 insertions, 199 deletions
diff --git a/engines/glk/alan2/exe.cpp b/engines/glk/alan2/exe.cpp index d91c3aafc7..3cd16d8721 100644 --- a/engines/glk/alan2/exe.cpp +++ b/engines/glk/alan2/exe.cpp @@ -20,21 +20,16 @@ * */ -#include "glk/alan2/types.h" #include "glk/alan2/alan2.h" - -#ifdef USE_READLINE -#include "glk/alan2/readline.h" -#endif - +#include "glk/alan2/types.h" +#include "glk/alan2/exe.h" +#include "glk/alan2/inter.h" #include "glk/alan2/main.h" #include "glk/alan2/parse.h" -#include "glk/alan2/inter.h" +#include "glk/alan2/readline.h" #include "glk/alan2/stack.h" #include "glk/alan2/decode.h" -#include "glk/alan2/exe.h" - namespace Glk { namespace Alan2 { @@ -97,9 +92,6 @@ void print(Aword fpos, Aword len) { str[i] = ch; } str[i] = '\0'; -#if ISO == 0 - fromIso(str, str); -#endif output(str); } /* And restore */ @@ -168,11 +160,7 @@ Boolean confirm(MsgKind msgno) { it could be affirmative, but for now any input is NOT! */ prmsg(msgno); -#ifdef USE_READLINE if (!readline(buf)) return TRUE; -#else - if (gets(buf) == NULL) return TRUE; -#endif col = 1; return (buf[0] == '\0'); @@ -187,11 +175,8 @@ void quit() { col = 1; statusline(); prmsg(M_QUITACTION); -#ifdef USE_READLINE if (!readline(buf)) terminate(0); -#else - if (gets(buf) == NULL) terminate(0); -#endif + if (strcmp(buf, "restart") == 0) //longjmp(restart_label, TRUE); ::error("TODO: restart"); @@ -1082,95 +1067,10 @@ static char savfnm[256]; */ -#ifdef GARGLK void save() { g_vm->saveGame(); } -#else - -void save() { - int i; - char str[256]; - AtrElem *atr; - FILE *savfil; - - /* First save ? */ - if (savfnm[0] == '\0') { - strcpy(savfnm, advnam); - strcat(savfnm, ".sav"); - } - prmsg(M_SAVEWHERE); - sprintf(str, "(%s) : ", savfnm); - output(str); - -#ifdef USE_READLINE - readline(str); -#else - gets(str); -#endif - -frefid_t fref; -fref = g_vm->glk_fileref_create_by_prompt(fileusage_SavedGame, filemode_Write, 0); -if (fref == NULL) - error(M_SAVEFAILED); -strcpy(str, g_vm->garglk_fileref_get_name(fref)); -g_vm->glk_fileref_destroy(fref); - - if (str[0] == '\0') - strcpy(str, savfnm); - col = 1; - if ((savfil = fopen(str, READ_MODE)) != NULL) - /* It already existed */ - if (!confirm(M_SAVEOVERWRITE)) - error(MSGMAX); /* Return to player without saying anything */ - if ((savfil = fopen(str, WRITE_MODE)) == NULL) - error(M_SAVEFAILED); - strcpy(savfnm, str); - - /* Save version of interpreter and name of game */ - fwrite((void *)&header->vers, sizeof(Aword), 1, savfil); - fwrite((void *)advnam, strlen(advnam)+1, 1, savfil); - /* Save current values */ - fwrite((void *)&cur, sizeof(cur), 1, savfil); - /* Save actors */ - for (i = ACTMIN; i <= ACTMAX; i++) { - fwrite((void *)&acts[i-ACTMIN].loc, sizeof(Aword), 1, savfil); - fwrite((void *)&acts[i-ACTMIN].script, sizeof(Aword), 1, savfil); - fwrite((void *)&acts[i-ACTMIN].step, sizeof(Aword), 1, savfil); - fwrite((void *)&acts[i-ACTMIN].count, sizeof(Aword), 1, savfil); - if (acts[i-ACTMIN].atrs) - for (atr = (AtrElem *) addrTo(acts[i-ACTMIN].atrs); !endOfTable(atr); atr++) - fwrite((void *)&atr->val, sizeof(Aword), 1, savfil); - } - - /* Save locations */ - for (i = LOCMIN; i <= LOCMAX; i++) { - fwrite((void *)&locs[i-LOCMIN].describe, sizeof(Aword), 1, savfil); - if (locs[i-LOCMIN].atrs) - for (atr = (AtrElem *) addrTo(locs[i-LOCMIN].atrs); !endOfTable(atr); atr++) - fwrite((void *)&atr->val, sizeof(Aword), 1, savfil); - } - - /* Save objects */ - for (i = OBJMIN; i <= OBJMAX; i++) { - fwrite((void *)&objs[i-OBJMIN].loc, sizeof(Aword), 1, savfil); - if (objs[i-OBJMIN].atrs) - for (atr = (AtrElem *) addrTo(objs[i-OBJMIN].atrs); !endOfTable(atr); atr++) - fwrite((void *)&atr->val, sizeof(atr->val), 1, savfil); - } - - /* Save the event queue */ - eventq[etop].time = 0; /* Mark the top */ - fwrite((void *)&eventq[0], sizeof(eventq[0]), etop+1, savfil); - - /* Save scores */ - for (i = 0; scores[i] != EOF; i++) - fwrite((void *)&scores[i], sizeof(Aword), 1, savfil); - - fclose(savfil); -} -#endif /*---------------------------------------------------------------------- @@ -1178,104 +1078,10 @@ g_vm->glk_fileref_destroy(fref); */ -#ifdef GARGLK void restore() { g_vm->loadGame(); } -#else - -void restore() { - int i,tmp; - FILE *savfil; - char str[256]; - AtrElem *atr; - char savedVersion[4]; - char savedName[256]; - - /* First save ? */ - if (savfnm[0] == '\0') { - strcpy(savfnm, advnam); - strcat(savfnm, ".sav"); - } - prmsg(M_RESTOREFROM); - sprintf(str, "(%s) : ", savfnm); - output(str); -#ifdef USE_READLINE - readline(str); -#else - gets(str); -#endif - - if (str[0] == '\0') - strcpy(str, savfnm); - col = 1; - if (str[0] == '\0') - strcpy(str, savfnm); /* Use the name temporarily */ - if ((savfil = fopen(str, READ_MODE)) == NULL) - error(M_SAVEMISSING); - strcpy(savfnm, str); /* Save it for future use */ - - tmp = fread((void *)&savedVersion, sizeof(Aword), 1, savfil); - /* 4f - save file version check doesn't seem to work on PC's! */ - if (strncmp(savedVersion, header->vers, 4)) { - fclose(savfil); - error(M_SAVEVERS); - return; - } - i = 0; - while ((savedName[i++] = fgetc(savfil)) != '\0'); - if (strcmp(savedName, advnam) != 0) { - fclose(savfil); - error(M_SAVENAME); - return; - } - - /* Restore current values */ - tmp = fread((void *)&cur, sizeof(cur), 1, savfil); - /* Restore actors */ - for (i = ACTMIN; i <= ACTMAX; i++) { - tmp = fread((void *)&acts[i-ACTMIN].loc, sizeof(Aword), 1, savfil); - tmp = fread((void *)&acts[i-ACTMIN].script, sizeof(Aword), 1, savfil); - tmp = fread((void *)&acts[i-ACTMIN].step, sizeof(Aword), 1, savfil); - tmp = fread((void *)&acts[i-ACTMIN].count, sizeof(Aword), 1, savfil); - if (acts[i-ACTMIN].atrs) - for (atr = (AtrElem *) addrTo(acts[i-ACTMIN].atrs); !endOfTable(atr); atr++) - tmp = fread((void *)&atr->val, sizeof(Aword), 1, savfil); - } - - /* Restore locations */ - for (i = LOCMIN; i <= LOCMAX; i++) { - tmp = fread((void *)&locs[i-LOCMIN].describe, sizeof(Aword), 1, savfil); - if (locs[i-LOCMIN].atrs) - for (atr = (AtrElem *) addrTo(locs[i-LOCMIN].atrs); !endOfTable(atr); atr++) - tmp = fread((void *)&atr->val, sizeof(Aword), 1, savfil); - } - - /* Restore objects */ - for (i = OBJMIN; i <= OBJMAX; i++) { - tmp = fread((void *)&objs[i-OBJMIN].loc, sizeof(Aword), 1, savfil); - if (objs[i-OBJMIN].atrs) - for (atr = (AtrElem *) addrTo(objs[i-OBJMIN].atrs); !endOfTable(atr); atr++) - tmp = fread((void *)&atr->val, sizeof(atr->val), 1, savfil); - } - - /* Restore the eventq */ - etop = 0; - do { - tmp = fread((void *)&eventq[etop], sizeof(eventq[0]), 1, savfil); - etop++; - } while (eventq[etop-1].time != 0); - etop--; - - /* Restore scores */ - for (i = 0; scores[i] != EOF; i++) - tmp = fread((void *)&scores[i], sizeof(Aword), 1, savfil); - - fclose(savfil); -} - -#endif /*---------------------------------------------------------------------- |