aboutsummaryrefslogtreecommitdiff
path: root/engines/glk/alan2/exe.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2019-06-21 19:20:58 -0700
committerPaul Gilbert2019-06-22 14:40:50 -0700
commitdd4108e7c79770ec8235bd4440e0cdc06becd9d9 (patch)
treec41d06548ac4c4fbb037b733c1cdab519822204c /engines/glk/alan2/exe.cpp
parent8f75589971d70b2ca749d5389a332e6761213a5b (diff)
downloadscummvm-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.cpp204
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
/*----------------------------------------------------------------------