summaryrefslogtreecommitdiff
path: root/procyon/source
diff options
context:
space:
mode:
Diffstat (limited to 'procyon/source')
-rw-r--r--procyon/source/bs/dbglog.c11
-rw-r--r--procyon/source/bs/exit.c15
-rw-r--r--procyon/source/bs/init.c51
-rw-r--r--procyon/source/bs/shipnm.c70
-rw-r--r--procyon/source/evt/jmp.c13
-rw-r--r--procyon/source/gfx/initgfx.c22
-rw-r--r--procyon/source/info/jmplen.c7
-rw-r--r--procyon/source/info/sysdist.c7
-rw-r--r--procyon/source/main.c24
-rw-r--r--procyon/source/sav/cont.c81
-rw-r--r--procyon/source/sav/sav.c35
11 files changed, 0 insertions, 336 deletions
diff --git a/procyon/source/bs/dbglog.c b/procyon/source/bs/dbglog.c
deleted file mode 100644
index d04174f..0000000
--- a/procyon/source/bs/dbglog.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <acm/bs.h>
-
-#include <stdarg.h>
-#include <stdio.h>
-
-void acm_dbglog(char const * const _fmt,...) {
- va_list args;
- va_start(args,_fmt);
- vfprintf(stderr,_fmt,args);
- va_end(args);
-}
diff --git a/procyon/source/bs/exit.c b/procyon/source/bs/exit.c
deleted file mode 100644
index e49dfc9..0000000
--- a/procyon/source/bs/exit.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <acm/bs.h>
-
-#include <GLFW/glfw3.h>
-#include <stdlib.h>
-
-void acm_exit(acm_stat const _stat) {
- int const cstat = _stat == acm_stat_ok ? EXIT_SUCCESS : EXIT_FAILURE;
- free((void *)acm_dat.savloc);
- if (acm_dat.gfxisinit) {
- glfwDestroyWindow(acm_dat.win);
- glfwTerminate();
- }
- acm_log("Done (%X)\n",cstat);
- exit(cstat);
-}
diff --git a/procyon/source/bs/init.c b/procyon/source/bs/init.c
deleted file mode 100644
index 1f4c57e..0000000
--- a/procyon/source/bs/init.c
+++ /dev/null
@@ -1,51 +0,0 @@
-#include <acm/gfx.h>
-
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <zap/mem.h>
-
-sig_atomic_t volatile acm_gotintr;
-
-typeof (acm_dat) acm_dat;
-
-static char * acm_getsavloc(void) {
- char const * const hmdir = getenv("HOME");
- if (hmdir == nullptr) {
- fprintf(stderr,"Unable to get home directory (HOME not set)\n");
- acm_exit(acm_stat_err);
- }
- char const * const savfilnm = ".procyon-save";
- zap_sz const hmdirlen = zap_strlen(hmdir);
- zap_sz const savfilnmlen = zap_strlen(savfilnm);
- zap_sz const savloclen = hmdirlen + 0x1u + savfilnmlen;
- char * savloc = malloc(savloclen + 0x1u);
- if (savloc == nullptr) {
- fprintf(stderr,"Unable allocate memory\n");
- acm_exit(acm_stat_err);
- }
- zap_memcp(hmdir,hmdirlen,savloc);
- savloc[hmdirlen] = '/';
- zap_memcp(savfilnm,savfilnmlen,savloc + hmdirlen + 0x1u);
- savloc[savloclen] = 0x0u;
- return savloc;
-}
-
-static void acm_intrhandl(int const _sig) {
- signal(_sig,acm_intrhandl); /* Ignore the return value. */
- acm_gotintr = 0x1;
-}
-
-void acm_init(void) {
- acm_gotintr = 0x0;
- acm_dat.gfxisinit = false;
- acm_dat.win = nullptr;
- acm_log("Initialising data\n");
- acm_dat.savloc = acm_getsavloc();
- acm_log("Initialising signal handlers\n");
- if (signal(SIGINT,acm_intrhandl) == SIG_ERR) {
- fprintf(stderr,"Unable to set SIGINT handler\n");
- acm_exit(acm_stat_err);
- }
- acm_initgfx();
-}
diff --git a/procyon/source/bs/shipnm.c b/procyon/source/bs/shipnm.c
deleted file mode 100644
index f1d8f4e..0000000
--- a/procyon/source/bs/shipnm.c
+++ /dev/null
@@ -1,70 +0,0 @@
-#include <acm/bs.h>
-
-char const * acm_shipnm(acm_shipid const _ship) {
- switch (_ship) {
- case acm_shipid_add:
- return "Adder";
- case acm_shipid_ana:
- return "Anaconda";
- case acm_shipid_asp:
- return "Asp";
- case acm_shipid_boa:
- return "Boa";
- case acm_shipid_cob:
- return "Cobra";
- case acm_shipid_con:
- return "Constrictor";
- case acm_shipid_cou:
- return "Courier";
- case acm_shipid_cyg:
- return "Cygnus";
- case acm_shipid_dov:
- return "Dove";
- case acm_shipid_eag:
- return "Eagle";
- case acm_shipid_falc:
- return "Falcon";
- case acm_shipid_fer:
- return "Fer-de-lance";
- case acm_shipid_frei:
- return "Freighter";
- case acm_shipid_geck:
- return "Gecko";
- case acm_shipid_haul:
- return "Hauler";
- case acm_shipid_hawk:
- return "Hawk";
- case acm_shipid_keel:
- return "Keelback";
- case acm_shipid_kes:
- return "Kestral";
- case acm_shipid_krait:
- return "Krait";
- case acm_shipid_lift:
- return "Lifter";
- case acm_shipid_lion:
- return "Lion";
- case acm_shipid_mamba:
- return "Mamba";
- case acm_shipid_moray:
- return "Moray";
- case acm_shipid_osp:
- return "Osprey";
- case acm_shipid_pan:
- return "Panther";
- case acm_shipid_puma:
- return "Puma";
- case acm_shipid_py:
- return "Python";
- case acm_shipid_shut:
- return "Shuttle";
- case acm_shipid_side:
- return "Sidewinder";
- case acm_shipid_tran:
- return "Transporter";
- case acm_shipid_vip:
- return "Viper";
- case acm_shipid_vult:
- return "Vulture";
- }
-}
diff --git a/procyon/source/evt/jmp.c b/procyon/source/evt/jmp.c
deleted file mode 100644
index 5a93491..0000000
--- a/procyon/source/evt/jmp.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <acm/evt.h>
-#include <acm/info.h>
-
-#include <stdint.h>
-
-bool acm_jmp(uint_least64_t const _sys) {
- acm_pldat pldat = acm_dat.pldat;
- if (acm_sysdist(_sys) > acm_jmplen(&pldat.ship)) {
- return true;
- }
- acm_dat.pldat = pldat;
- return false;
-}
diff --git a/procyon/source/gfx/initgfx.c b/procyon/source/gfx/initgfx.c
deleted file mode 100644
index d60e393..0000000
--- a/procyon/source/gfx/initgfx.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <acm/gfx.h>
-
-#include <GLFW/glfw3.h>
-
-void acm_initgfx(void) {
- acm_log("Initialising graphics\n");
- if (!glfwInit()) {
- fprintf(stderr,"Unable to initialise GLFW\n");
- acm_exit(acm_stat_err);
- }
- GLFWwindow * win = glfwCreateWindow(0x300,0x200,"Procyon",nullptr,nullptr);
- if (win == nullptr) {
- fprintf(stderr,"Unable to open window\n");
- goto abrt;
- }
- glfwMakeContextCurrent(win);
- acm_dat.win = win;
- return;
-abrt:;
- glfwTerminate();
- acm_exit(acm_stat_err);
-}
diff --git a/procyon/source/info/jmplen.c b/procyon/source/info/jmplen.c
deleted file mode 100644
index 7ef8995..0000000
--- a/procyon/source/info/jmplen.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <acm/info.h>
-
-#include <stdint.h>
-
-uint_least64_t acm_jmplen(acm_ship const * _ship) {
- return 0x0u;
-}
diff --git a/procyon/source/info/sysdist.c b/procyon/source/info/sysdist.c
deleted file mode 100644
index 2e77220..0000000
--- a/procyon/source/info/sysdist.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <acm/info.h>
-
-#include <stdint.h>
-
-uint_least64_t acm_sysdist(uint_least64_t const _sys) {
- return ~(uint_least64_t)0x0u;
-}
diff --git a/procyon/source/main.c b/procyon/source/main.c
deleted file mode 100644
index 19439a4..0000000
--- a/procyon/source/main.c
+++ /dev/null
@@ -1,24 +0,0 @@
-#include <acm/sav.h>
-
-#include <flux.h>
-#include <inttypes.h>
-#include <stdio.h>
-
-int main(int const argc,[[maybe_unused]] char const * const * const argv) {
- acm_dat.gfxisinit = false;
- if (argc > 0x1) {
- fprintf(stderr,"Ignoring terminal options\n");
- }
- printf("Procyon, %" PRIxLEAST64 " - Copyright 2022 Gabriel Jensen.\n",acm_ver);
- acm_init();
- acm_cont(&acm_dat.pldat);
- acm_log("Ready\n");
- while (!glfwWindowShouldClose(acm_dat.win)) {
- if (acm_gotintr) {
- fprintf(stderr,"Got interrupt, stopping\n");
- glfwSetWindowShouldClose(acm_dat.win,0x1);
- }
- }
- acm_sav(&acm_dat.pldat);
- acm_exit(acm_stat_ok);
-}
diff --git a/procyon/source/sav/cont.c b/procyon/source/sav/cont.c
deleted file mode 100644
index e52fd76..0000000
--- a/procyon/source/sav/cont.c
+++ /dev/null
@@ -1,81 +0,0 @@
-#include <acm/info.h>
-#include <acm/sav.h>
-
-#include <flux.h>
-#include <inttypes.h>
-#include <zap/mem.h>
-
-static_assert(sizeof (acm_dflplnm) == acm_plnmlen);
-
-void acm_cont(acm_pldat * const _pldat) {
- acm_log("Continuing\n");
- acm_pldat pldat;
- uint_least64_t savver;
- flux_err fluxerr;
- flux_fil savfil;
- fluxerr = flux_op(&savfil,acm_dat.savloc,flux_md_rd,flux_keep);
- if (fluxerr) {
- acm_log("Unable to open save file, starting new game: %s\n",flux_errstr(fluxerr));
- goto new;
- }
- fluxerr = flux_rd(savfil,sizeof (savver),&savver,nullptr);
- if (!fluxerr) {
- fluxerr = flux_rd(savfil,sizeof (pldat),&pldat,nullptr);
- }
- flux_cl(savfil);
- if (fluxerr) {
- acm_log("Unable to read save file, starting new game: %s\n",flux_errstr(fluxerr));
- goto new;
- }
- if (savver != acm_savver) {
- printf("Old save version (%" PRIXLEAST64 "), starting new game: %s\n",savver,flux_errstr(fluxerr));
- goto new;
- }
- acm_log("Validating commander name\n");
- bool validnm = false;
- for (zap_sz n = 0x0u;n < acm_plnmlen + 0x1u;++n) {
- if (pldat.nm[n] == '\x0') {
- if (n == 0x0u) {
- break;
- }
- validnm = true;
- break;
- }
- }
- if (!validnm) {
- acm_log("Invalid commander name (corrupt save file), starting new game\n");
- acm_log(
- "Commander name:\n"
- " %hhX %hhX %hhX %hhX\n"
- " %hhX %hhX %hhX %hhX\n"
- " %hhX %hhX %hhX %hhX\n"
- " %hhX %hhX %hhX %hhX\n"
- " %hhX\n",
- pldat.nm[0x0u],pldat.nm[0x1u],pldat.nm[0x2u],pldat.nm[0x3u],
- pldat.nm[0x4u],pldat.nm[0x5u],pldat.nm[0x6u],pldat.nm[0x7u],
- pldat.nm[0x8u],pldat.nm[0x9u],pldat.nm[0xAu],pldat.nm[0xBu],
- pldat.nm[0xCu],pldat.nm[0xDu],pldat.nm[0xEu],pldat.nm[0xFu],
- pldat.nm[0x10u]
- );
- goto new;
- }
- printf("Loaded CMDR %s, %s @ %" PRIiLEAST64 "\n",pldat.nm,acm_shipnm(pldat.ship.id),pldat.tm);
- *_pldat = pldat;
- return;
-new:;
- pldat.heat = 0x120u; /* 288K */
- pldat.pos.px = 0x0u;
- pldat.pos.py = 0x0u;
- pldat.pos.pz = 0x0u;
- pldat.pos.rx = 0x0u;
- pldat.pos.ry = 0x0u;
- pldat.pos.rz = 0x0u;
- pldat.pos.vx = 0x0u;
- pldat.pos.vy = 0x0u;
- pldat.pos.vz = 0x0u;
- pldat.ship.drv = acm_drv_h1;
- pldat.ship.id = acm_shipid_side;
- pldat.tm = 0x9679C2B40u; /* 3250-01-01T12:00:00Z */
- zap_memcp(acm_dflplnm,acm_plnmlen + 0x1u,pldat.nm);
- *_pldat = pldat;
-}
diff --git a/procyon/source/sav/sav.c b/procyon/source/sav/sav.c
deleted file mode 100644
index d7301c7..0000000
--- a/procyon/source/sav/sav.c
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <acm/sav.h>
-
-#include <flux.h>
-#include <stdio.h>
-
-void acm_sav(acm_pldat const * const _pldat) {
- acm_log("Saving\n");
- flux_err fluxerr;
- flux_fil savfil;
- fluxerr = flux_mkfil(&savfil,acm_dat.savloc,0644u);
- if (fluxerr) {
- if (fluxerr != flux_err_exist) {
- fprintf(stderr,"Unable to create save file (\"%s\"): %s\n",acm_dat.savloc,flux_errstr(fluxerr));
- acm_exit(acm_stat_err);
- }
- acm_log("Save file already exists, overwritting\n");
- fluxerr = flux_op(&savfil,acm_dat.savloc,flux_md_wr,flux_disc);
- if (fluxerr) {
- fprintf(stderr,"Unable to open save file: %s\n",flux_errstr(fluxerr));
- acm_exit(acm_stat_err);
- }
- }
- {
- uint_least64_t const savver = acm_savver;
- fluxerr = flux_wr(savfil,&savver,sizeof (savver));
- }
- if (!fluxerr) {
- fluxerr = flux_wr(savfil,_pldat,sizeof (*_pldat));
- }
- if (fluxerr) {
- fprintf(stderr,"Unable to write to save file: %s\n",flux_errstr(fluxerr));
- acm_exit(acm_stat_err);
- }
- flux_cl(savfil);
-}