Added CLI functionality with --skip-intro option.
This commit is contained in:
parent
ef3b0ba52d
commit
4cbe3af070
@ -28,6 +28,8 @@
|
|||||||
#include "course_table.h"
|
#include "course_table.h"
|
||||||
#include "thread6.h"
|
#include "thread6.h"
|
||||||
|
|
||||||
|
#include "pc/cliopts.h"
|
||||||
|
|
||||||
#define PLAY_MODE_NORMAL 0
|
#define PLAY_MODE_NORMAL 0
|
||||||
#define PLAY_MODE_PAUSED 2
|
#define PLAY_MODE_PAUSED 2
|
||||||
#define PLAY_MODE_CHANGE_AREA 3
|
#define PLAY_MODE_CHANGE_AREA 3
|
||||||
@ -1197,7 +1199,7 @@ s32 init_level(void) {
|
|||||||
if (gMarioState->action != ACT_UNINITIALIZED) {
|
if (gMarioState->action != ACT_UNINITIALIZED) {
|
||||||
if (save_file_exists(gCurrSaveFileNum - 1)) {
|
if (save_file_exists(gCurrSaveFileNum - 1)) {
|
||||||
set_mario_action(gMarioState, ACT_IDLE, 0);
|
set_mario_action(gMarioState, ACT_IDLE, 0);
|
||||||
} else {
|
} else if (gCLIOpts.SkipIntro == 0) {
|
||||||
set_mario_action(gMarioState, ACT_INTRO_CUTSCENE, 0);
|
set_mario_action(gMarioState, ACT_INTRO_CUTSCENE, 0);
|
||||||
val4 = 1;
|
val4 = 1;
|
||||||
}
|
}
|
||||||
|
20
src/pc/cliopts.c
Normal file
20
src/pc/cliopts.c
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#include "cliopts.h"
|
||||||
|
|
||||||
|
struct PCCLIOptions gCLIOpts;
|
||||||
|
|
||||||
|
void parse_cli_opts(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
// Initialize options with false values.
|
||||||
|
gCLIOpts.SkipIntro = 0;
|
||||||
|
|
||||||
|
// Scan arguments for options
|
||||||
|
if (argc > 1)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 1; i < argc; i++)
|
||||||
|
{
|
||||||
|
if (strcmp(argv[i], "--skip-intro") == 0) // Skip Peach Intro
|
||||||
|
gCLIOpts.SkipIntro = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
10
src/pc/cliopts.h
Normal file
10
src/pc/cliopts.h
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#include "sm64.h"
|
||||||
|
|
||||||
|
struct PCCLIOptions
|
||||||
|
{
|
||||||
|
u8 SkipIntro;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern struct PCCLIOptions gCLIOpts;
|
||||||
|
|
||||||
|
void parse_cli_opts(int argc, char* argv[]);
|
@ -18,6 +18,7 @@
|
|||||||
#include "audio/audio_sdl.h"
|
#include "audio/audio_sdl.h"
|
||||||
#include "audio/audio_null.h"
|
#include "audio/audio_null.h"
|
||||||
|
|
||||||
|
#include "cliopts.h"
|
||||||
#include "configfile.h"
|
#include "configfile.h"
|
||||||
|
|
||||||
OSMesg D_80339BEC;
|
OSMesg D_80339BEC;
|
||||||
@ -155,6 +156,7 @@ void main_func(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
|
parse_cli_opts(argc, argv);
|
||||||
main_func();
|
main_func();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user