Don't require a game on startup
This commit is contained in:
parent
3cb5606382
commit
f6ed4d6f27
13
cli.c
13
cli.c
|
@ -2,10 +2,15 @@
|
|||
#include <stdio.h>
|
||||
|
||||
int parseCLIArgs(int argc, char **argv, CLIArgs *args) {
|
||||
if (argc != 2) {
|
||||
fprintf(stderr, "usage: %s /path/to/rom.vb\n", argv[0]);
|
||||
return 1;
|
||||
int arg;
|
||||
|
||||
args->filename = NULL;
|
||||
for (arg = 1; arg < argc; ++arg) {
|
||||
if (args->filename) {
|
||||
fprintf(stderr, "usage: %s /path/to/rom.vb\n", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
args->filename = argv[arg];
|
||||
}
|
||||
args->filename = argv[1];
|
||||
return 0;
|
||||
}
|
9
main.c
9
main.c
|
@ -1,5 +1,6 @@
|
|||
#include "cli.h"
|
||||
#include <SDL2/SDL.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include "ui.h"
|
||||
|
||||
|
@ -7,6 +8,7 @@ int main(int argc, char **argv) {
|
|||
CLIArgs args;
|
||||
UIContext *ui;
|
||||
int status;
|
||||
bool running = false;
|
||||
|
||||
if (parseCLIArgs(argc, argv, &args)) {
|
||||
return 1;
|
||||
|
@ -25,10 +27,13 @@ int main(int argc, char **argv) {
|
|||
}
|
||||
|
||||
if (args.filename) {
|
||||
uiLoadGame(ui, args.filename);
|
||||
if (uiLoadGame(ui, args.filename)) {
|
||||
return 1;
|
||||
}
|
||||
running = true;
|
||||
}
|
||||
|
||||
status = uiRun(ui);
|
||||
status = uiRun(ui, running);
|
||||
uiDestroy(ui);
|
||||
SDL_Quit();
|
||||
return status;
|
||||
|
|
4
ui.c
4
ui.c
|
@ -105,10 +105,10 @@ typedef enum status_t {
|
|||
status_running
|
||||
} status_t;
|
||||
|
||||
int uiRun(UIContext *ui) {
|
||||
int uiRun(UIContext *ui, bool running) {
|
||||
static uint8_t leftEye[384*224];
|
||||
static uint8_t rightEye[384*224];
|
||||
status_t status = status_running;
|
||||
status_t status = running ? status_running : status_paused;
|
||||
|
||||
while (1) {
|
||||
struct nk_context *ctx;
|
||||
|
|
4
ui.h
4
ui.h
|
@ -1,11 +1,13 @@
|
|||
#ifndef SHROOMS_VB_NATIVE_UI_
|
||||
#define SHROOMS_VB_NATIVE_UI_
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
typedef struct UIContext UIContext;
|
||||
|
||||
UIContext *uiInit();
|
||||
void uiDestroy(UIContext *ui);
|
||||
int uiLoadGame(UIContext *ui, const char *path);
|
||||
int uiRun(UIContext *ui);
|
||||
int uiRun(UIContext *ui, bool running);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue