]> Shamusworld >> Repos - apple2/blobdiff - src/settings.cpp
Added support for the Apple High Speed SCSI card.
[apple2] / src / settings.cpp
old mode 100755 (executable)
new mode 100644 (file)
index 841b961..81b4d1d
@@ -1,13 +1,13 @@
 //
 // SETTINGS.CPP: Game configuration loading/saving support
 //
-// by James L. Hammons
+// by James Hammons
 // (C) 2005 Underground Software
 //
-// JLH = James L. Hammons <jlhamm@acm.org>
+// JLH = James Hammons <jlhamm@acm.org>
 //
 // WHO  WHEN        WHAT
-// ---  ----------  ------------------------------------------------------------
+// ---  ----------  -----------------------------------------------------------
 // JLH  01/04/2006  Added changelog ;-)
 //
 
 
 #include <stdlib.h>
 #include <string>
-#include "SDL.h"
+#include <SDL2/SDL.h>
 #include "sdlemu_config.h"
 #include "log.h"
+#include "video.h"
 
 using namespace std;
 
+
 // Global variables
 
 Settings settings;
 
+
 // Private function prototypes
 
 static void CheckForTrailingSlash(char * path);
 
+
 //
 // Load Apple2's settings
 //
@@ -50,66 +54,71 @@ void LoadSettings(void)
        settings.renderType = sdlemu_getval_int("renderType", 0);
        settings.autoStateSaving = sdlemu_getval_bool("autoSaveState", true);
 
+       settings.winX = sdlemu_getval_int("windowX", 250);
+       settings.winY = sdlemu_getval_int("windowY", 100);
+
        // Keybindings in order of U, D, L, R, C, B, A, Op, Pa, 0-9, #, *
-       settings.p1KeyBindings[0] = sdlemu_getval_int("p1k_up", SDLK_UP);
-       settings.p1KeyBindings[1] = sdlemu_getval_int("p1k_down", SDLK_DOWN);
-       settings.p1KeyBindings[2] = sdlemu_getval_int("p1k_left", SDLK_LEFT);
-       settings.p1KeyBindings[3] = sdlemu_getval_int("p1k_right", SDLK_RIGHT);
-       settings.p1KeyBindings[4] = sdlemu_getval_int("p1k_c", SDLK_z);
-       settings.p1KeyBindings[5] = sdlemu_getval_int("p1k_b", SDLK_x);
-       settings.p1KeyBindings[6] = sdlemu_getval_int("p1k_a", SDLK_c);
-       settings.p1KeyBindings[7] = sdlemu_getval_int("p1k_option", SDLK_QUOTE);
-       settings.p1KeyBindings[8] = sdlemu_getval_int("p1k_pause", SDLK_RETURN);
-       settings.p1KeyBindings[9] = sdlemu_getval_int("p1k_0", SDLK_KP0);
-       settings.p1KeyBindings[10] = sdlemu_getval_int("p1k_1", SDLK_KP1);
-       settings.p1KeyBindings[11] = sdlemu_getval_int("p1k_2", SDLK_KP2);
-       settings.p1KeyBindings[12] = sdlemu_getval_int("p1k_3", SDLK_KP3);
-       settings.p1KeyBindings[13] = sdlemu_getval_int("p1k_4", SDLK_KP4);
-       settings.p1KeyBindings[14] = sdlemu_getval_int("p1k_5", SDLK_KP5);
-       settings.p1KeyBindings[15] = sdlemu_getval_int("p1k_6", SDLK_KP6);
-       settings.p1KeyBindings[16] = sdlemu_getval_int("p1k_7", SDLK_KP7);
-       settings.p1KeyBindings[17] = sdlemu_getval_int("p1k_8", SDLK_KP8);
-       settings.p1KeyBindings[18] = sdlemu_getval_int("p1k_9", SDLK_KP9);
-       settings.p1KeyBindings[19] = sdlemu_getval_int("p1k_pound", SDLK_KP_DIVIDE);
-       settings.p1KeyBindings[20] = sdlemu_getval_int("p1k_star", SDLK_KP_MULTIPLY);
-
-       settings.p2KeyBindings[0] = sdlemu_getval_int("p2k_up", SDLK_UP);
-       settings.p2KeyBindings[1] = sdlemu_getval_int("p2k_down", SDLK_DOWN);
-       settings.p2KeyBindings[2] = sdlemu_getval_int("p2k_left", SDLK_LEFT);
-       settings.p2KeyBindings[3] = sdlemu_getval_int("p2k_right", SDLK_RIGHT);
-       settings.p2KeyBindings[4] = sdlemu_getval_int("p2k_c", SDLK_z);
-       settings.p2KeyBindings[5] = sdlemu_getval_int("p2k_b", SDLK_x);
-       settings.p2KeyBindings[6] = sdlemu_getval_int("p2k_a", SDLK_c);
-       settings.p2KeyBindings[7] = sdlemu_getval_int("p2k_option", SDLK_QUOTE);
-       settings.p2KeyBindings[8] = sdlemu_getval_int("p2k_pause", SDLK_RETURN);
-       settings.p2KeyBindings[9] = sdlemu_getval_int("p2k_0", SDLK_KP0);
-       settings.p2KeyBindings[10] = sdlemu_getval_int("p2k_1", SDLK_KP1);
-       settings.p2KeyBindings[11] = sdlemu_getval_int("p2k_2", SDLK_KP2);
-       settings.p2KeyBindings[12] = sdlemu_getval_int("p2k_3", SDLK_KP3);
-       settings.p2KeyBindings[13] = sdlemu_getval_int("p2k_4", SDLK_KP4);
-       settings.p2KeyBindings[14] = sdlemu_getval_int("p2k_5", SDLK_KP5);
-       settings.p2KeyBindings[15] = sdlemu_getval_int("p2k_6", SDLK_KP6);
-       settings.p2KeyBindings[16] = sdlemu_getval_int("p2k_7", SDLK_KP7);
-       settings.p2KeyBindings[17] = sdlemu_getval_int("p2k_8", SDLK_KP8);
-       settings.p2KeyBindings[18] = sdlemu_getval_int("p2k_9", SDLK_KP9);
-       settings.p2KeyBindings[19] = sdlemu_getval_int("p2k_pound", SDLK_KP_DIVIDE);
-       settings.p2KeyBindings[20] = sdlemu_getval_int("p2k_star", SDLK_KP_MULTIPLY);
-
-       strcpy(settings.BIOSPath, sdlemu_getval_string("BIOSROM", "./ROMs/apple2.rom"));
+       settings.p1KeyBindings[0] = sdlemu_getval_int("p1k_up", SDL_SCANCODE_UP);
+       settings.p1KeyBindings[1] = sdlemu_getval_int("p1k_down", SDL_SCANCODE_DOWN);
+       settings.p1KeyBindings[2] = sdlemu_getval_int("p1k_left", SDL_SCANCODE_LEFT);
+       settings.p1KeyBindings[3] = sdlemu_getval_int("p1k_right", SDL_SCANCODE_RIGHT);
+       settings.p1KeyBindings[4] = sdlemu_getval_int("p1k_c", SDL_SCANCODE_Z);
+       settings.p1KeyBindings[5] = sdlemu_getval_int("p1k_b", SDL_SCANCODE_X);
+       settings.p1KeyBindings[6] = sdlemu_getval_int("p1k_a", SDL_SCANCODE_C);
+       settings.p1KeyBindings[7] = sdlemu_getval_int("p1k_option", SDL_SCANCODE_APOSTROPHE);
+       settings.p1KeyBindings[8] = sdlemu_getval_int("p1k_pause", SDL_SCANCODE_RETURN);
+       settings.p1KeyBindings[9] = sdlemu_getval_int("p1k_0", SDL_SCANCODE_KP_0);
+       settings.p1KeyBindings[10] = sdlemu_getval_int("p1k_1", SDL_SCANCODE_KP_1);
+       settings.p1KeyBindings[11] = sdlemu_getval_int("p1k_2", SDL_SCANCODE_KP_2);
+       settings.p1KeyBindings[12] = sdlemu_getval_int("p1k_3", SDL_SCANCODE_KP_3);
+       settings.p1KeyBindings[13] = sdlemu_getval_int("p1k_4", SDL_SCANCODE_KP_4);
+       settings.p1KeyBindings[14] = sdlemu_getval_int("p1k_5", SDL_SCANCODE_KP_5);
+       settings.p1KeyBindings[15] = sdlemu_getval_int("p1k_6", SDL_SCANCODE_KP_6);
+       settings.p1KeyBindings[16] = sdlemu_getval_int("p1k_7", SDL_SCANCODE_KP_7);
+       settings.p1KeyBindings[17] = sdlemu_getval_int("p1k_8", SDL_SCANCODE_KP_8);
+       settings.p1KeyBindings[18] = sdlemu_getval_int("p1k_9", SDL_SCANCODE_KP_9);
+       settings.p1KeyBindings[19] = sdlemu_getval_int("p1k_pound", SDL_SCANCODE_KP_DIVIDE);
+       settings.p1KeyBindings[20] = sdlemu_getval_int("p1k_star", SDL_SCANCODE_KP_MULTIPLY);
+
+       settings.p2KeyBindings[0] = sdlemu_getval_int("p2k_up", SDL_SCANCODE_UP);
+       settings.p2KeyBindings[1] = sdlemu_getval_int("p2k_down", SDL_SCANCODE_DOWN);
+       settings.p2KeyBindings[2] = sdlemu_getval_int("p2k_left", SDL_SCANCODE_LEFT);
+       settings.p2KeyBindings[3] = sdlemu_getval_int("p2k_right", SDL_SCANCODE_RIGHT);
+       settings.p2KeyBindings[4] = sdlemu_getval_int("p2k_c", SDL_SCANCODE_Z);
+       settings.p2KeyBindings[5] = sdlemu_getval_int("p2k_b", SDL_SCANCODE_X);
+       settings.p2KeyBindings[6] = sdlemu_getval_int("p2k_a", SDL_SCANCODE_C);
+       settings.p2KeyBindings[7] = sdlemu_getval_int("p2k_option", SDL_SCANCODE_APOSTROPHE);
+       settings.p2KeyBindings[8] = sdlemu_getval_int("p2k_pause", SDL_SCANCODE_RETURN);
+       settings.p2KeyBindings[9] = sdlemu_getval_int("p2k_0", SDL_SCANCODE_KP_0);
+       settings.p2KeyBindings[10] = sdlemu_getval_int("p2k_1", SDL_SCANCODE_KP_1);
+       settings.p2KeyBindings[11] = sdlemu_getval_int("p2k_2", SDL_SCANCODE_KP_2);
+       settings.p2KeyBindings[12] = sdlemu_getval_int("p2k_3", SDL_SCANCODE_KP_3);
+       settings.p2KeyBindings[13] = sdlemu_getval_int("p2k_4", SDL_SCANCODE_KP_4);
+       settings.p2KeyBindings[14] = sdlemu_getval_int("p2k_5", SDL_SCANCODE_KP_5);
+       settings.p2KeyBindings[15] = sdlemu_getval_int("p2k_6", SDL_SCANCODE_KP_6);
+       settings.p2KeyBindings[16] = sdlemu_getval_int("p2k_7", SDL_SCANCODE_KP_7);
+       settings.p2KeyBindings[17] = sdlemu_getval_int("p2k_8", SDL_SCANCODE_KP_8);
+       settings.p2KeyBindings[18] = sdlemu_getval_int("p2k_9", SDL_SCANCODE_KP_9);
+       settings.p2KeyBindings[19] = sdlemu_getval_int("p2k_pound", SDL_SCANCODE_KP_DIVIDE);
+       settings.p2KeyBindings[20] = sdlemu_getval_int("p2k_star", SDL_SCANCODE_KP_MULTIPLY);
+
+       strcpy(settings.BIOSPath, sdlemu_getval_string("BIOSROM", "./ROMs/apple2e-enhanced.rom"));
        strcpy(settings.disksPath, sdlemu_getval_string("disks", "./disks"));
-       strcpy(settings.diskImagePath1, sdlemu_getval_string("floppyImage1", "./disks/bt1_boot.dsk"));
-       strcpy(settings.diskImagePath2, sdlemu_getval_string("floppyImage2", "./disks/bt1_char.dsk"));
+       strcpy(settings.hdPath, sdlemu_getval_string("harddrive", "./disks/Pitch-Dark-20180731.2mg"));
        strcpy(settings.autoStatePath, sdlemu_getval_string("autoStateFilename", "./apple2auto.state"));
        CheckForTrailingSlash(settings.disksPath);
 }
 
+
 //
 // Save Apple2's settings
 //
 void SaveSettings(void)
 {
+       SDL_GetWindowPosition(sdlWindow, &settings.winX, &settings.winY);
 }
 
+
 //
 // Check path for a trailing slash, and append if not present
 //
@@ -119,3 +128,4 @@ static void CheckForTrailingSlash(char * path)
                if (path[strlen(path) - 1] != '/')
                        strcat(path, "/");      // NOTE: Possible buffer overflow
 }
+