pmd-red/include/game_options.h
2025-08-29 20:20:35 +02:00

84 lines
1.7 KiB
C

#ifndef GUARD_GAME_OPTIONS_H
#define GUARD_GAME_OPTIONS_H
#include "data_serializer.h"
enum DungeonSpeed
{
DUNGEON_SPEED_SLOW,
DUNGEON_SPEED_FAST,
};
enum FarOffPals
{
FAROFFPALS_SELF,
FAROFFPALS_LOCK,
};
// GBA has 3 options while DS has 7
enum MapOption
{
MAP_OPTION_OFF,
MAP_OPTION_CLEAR,
MAP_OPTION_SHADE,
NUM_GBA_MAP_OPTIONS,
};
enum DSMapOption
{
TOP_TEAM_DATA_NO_BOTTOM,
TOP_TEAM_DATA_CLEAR_MAP_BOTTOM,
TOP_TEAM_DATA_SHADED_MAP_BOTTOM,
TOP_MESSAGE_LOG_NO_BOTTOM,
TOP_MESSAGE_LOG_CLEAR_MAP_BOTTOM,
TOP_MESSAGE_LOG_SHADED_MAP_BOTTOM,
TOP_MAP_AND_TEAM_NO_BOTTOM,
NUM_DS_MAP_OPTIONS,
};
enum windowColor
{
WINDOW_COLOR_BLUE,
WINDOW_COLOR_RED,
WINDOW_COLOR_GREEN,
NUM_WINDOW_COLORS,
};
enum GameControls
{
CONTROLS_GBA,
CONTROLS_DS,
};
// size: 0x10
typedef struct GameOptions
{
/* 0x0 */ u8 dungeonSpeed;
/* 0x1 */ u8 FarOffPals;
/* 0x2 */ bool8 damageTurn;
/* 0x3 */ bool8 gridEnable;
/* 0x4 */ u8 mapOption;
/* 0x5 */ u8 fill5[3];
/* 0x8 */ u8 windowColor;
/* 0x9 */ u8 controls; // DS only
/* 0xA */ bool8 touchScreen; // DS only
/* 0xB */ u8 playerGender;
/* 0xC */ u8 unkC;
} GameOptions;
extern GameOptions *gGameOptionsRef;
void LoadGameOptions(void);
GameOptions *GetGameOptions(void);
void InitializeGameOptions(bool8 initializeGender);
bool8 GameOptionsNotChange(GameOptions *newOptions);
void WriteGameOptionsBits(DataSerializer *param_1);
void ReadGameOptionsBits(DataSerializer *param_1);
void SetWindowBGColor(void);
bool8 GameOptions_ShowMiniMap(void);
bool8 GameOptions_IsTransparentMiniMap(void);
void GameOptions_SetTransparentMiniMap(void);
bool8 sub_8094D14(void);
#endif // GUARD_GAME_OPTIONS_H