mirror of
https://github.com/zeldaret/tmc
synced 2026-08-16 21:18:15 -04:00
game.c doc
This commit is contained in:
+2
-2
@@ -43,8 +43,8 @@ typedef struct {
|
||||
RoomResInfo roomResInfos[MAX_ROOMS];
|
||||
RoomResInfo currentRoomInfo;
|
||||
RoomResInfo* pCurrentRoomInfo;
|
||||
u32 musicIndex;
|
||||
u32 pMusicIndex;
|
||||
u32 bgm;
|
||||
u32 queued_bgm;
|
||||
u8 filler5[0x20];
|
||||
void* transitionManager;
|
||||
void (*onEnter)();
|
||||
|
||||
+1
-1
@@ -100,7 +100,7 @@ extern void sub_0804ED18();
|
||||
extern void sub_080AF2E4(void);
|
||||
extern void sub_0804F578(void);
|
||||
extern void sub_08059994(void);
|
||||
extern void sub_080ADA14(u32, u32); // trampoline to sub_080B27F4
|
||||
extern void DrawDirect(u32, u32); // trampoline to sub_080B27F4
|
||||
extern void sub_0801E1B8(u32, u32);
|
||||
extern void sub_080A3B74(void);
|
||||
extern void sub_080A4054(void);
|
||||
|
||||
+83
-48
@@ -4,60 +4,50 @@
|
||||
#include "global.h"
|
||||
#include "area.h"
|
||||
|
||||
enum {
|
||||
GAMETASK_TRANSITION,
|
||||
GAMETASK_INIT,
|
||||
GAMETASK_MAIN,
|
||||
GAMETASK_EXIT,
|
||||
};
|
||||
|
||||
enum {
|
||||
GAMEMAIN_INITROOM,
|
||||
GAMEMAIN_CHANGEROOM,
|
||||
GAMEMAIN_UPDATE,
|
||||
GAMEMAIN_CHANGEAREA,
|
||||
GAMEMAIN_MINISHPORTAL,
|
||||
GAMEMAIN_BARRELUPDATE,
|
||||
GAMEMAIN_RESERVED,
|
||||
GAMEMAIN_SUBTASK,
|
||||
};
|
||||
|
||||
void ChangeLightLevel(s32);
|
||||
void ChangeLightLevel(s32 level);
|
||||
void SetPopupState(u32 type, u32 choice_idx);
|
||||
|
||||
bool32 CheckIsOverworld(void);
|
||||
bool32 sub_08052638(u32 r0);
|
||||
bool32 CheckAreaOverworld(u32 area);
|
||||
bool32 AreaIsOverworld(void);
|
||||
bool32 AreaIsDungeon(void);
|
||||
bool32 AreaHasEnemies(void);
|
||||
bool32 AreaHasNoEnemies(void);
|
||||
bool32 AreaHasMap(void);
|
||||
bool32 AreaHasKeys(void);
|
||||
|
||||
#ifndef EU
|
||||
u32 sub_08052654(void);
|
||||
#endif
|
||||
u32 CheckIsDungeon(void);
|
||||
u32 CheckIsInteriorWithEnemies(void);
|
||||
u32 CheckIsInteriorNoEnemies(void);
|
||||
u32 CheckHasMap(void);
|
||||
// This function was introduced to allow warping from indoor areas (palace of winds).
|
||||
u32 AreaAllowsWarp(void);
|
||||
|
||||
u32 ItemIsSword(u32 item);
|
||||
|
||||
void sub_080526F8(s32 a1);
|
||||
u32 sub_08052724(void);
|
||||
u32 HasDungeonMap(void);
|
||||
u32 HasDungeonCompass(void);
|
||||
u32 HasDungeonBigKey(void);
|
||||
u32 HasDungeonSmallKey(void);
|
||||
|
||||
void sub_080527FC(u32 a1, u32 a2);
|
||||
#ifndef EU
|
||||
// related to a music bug?
|
||||
void sub_08052878(void);
|
||||
#endif
|
||||
|
||||
void RoomExitCallback(void);
|
||||
void sub_080526F8(s32 a1);
|
||||
bool32 HasDungeonMap(void);
|
||||
bool32 HasDungeonCompass(void);
|
||||
bool32 HasDungeonBigKey(void);
|
||||
bool32 HasDungeonSmallKey(void);
|
||||
|
||||
bool32 ItemIsSword(u32 item);
|
||||
bool32 ItemIsShield(u32 item);
|
||||
u32 GetBottleContaining(u32 item);
|
||||
|
||||
void LoadGfxGroups(void);
|
||||
void LoadCutsceneRoom(u32 room, u32 area);
|
||||
void InitRoom(void);
|
||||
void InitParachuteRoom(void);
|
||||
u32 sub_08052B24(void);
|
||||
|
||||
void RegisterTransitionManager(void* mgr, void (*onEnter)(void), void (*onExit)(void));
|
||||
void RoomExitCallback(void);
|
||||
|
||||
void RestoreGameTask(u32 a1);
|
||||
|
||||
bool32 CanDispEzloMessage(void);
|
||||
void DisplayEzloMessage(void);
|
||||
|
||||
void sub_08052CA4(u32 area, u32 room, u32 x, u32 y);
|
||||
void sub_08052CD0(u32 area, u32 room, u32 x, u32 y);
|
||||
|
||||
void InitRoom(void);
|
||||
void SetWorldMapPos(u32 area, u32 room, u32 x, u32 y);
|
||||
void SetDungeonMapPos(u32 area, u32 room, u32 x, u32 y);
|
||||
|
||||
/**
|
||||
* @brief Get bank offset for area
|
||||
@@ -66,14 +56,59 @@ u32 GetFlagBankOffset(u32 idx);
|
||||
|
||||
RoomResInfo* GetCurrentRoomInfo(void);
|
||||
void sub_08052EA0(void);
|
||||
void sub_08052FD8(u32 room, u32 area);
|
||||
void sub_08053250(void);
|
||||
void LoadGfxGroups(void);
|
||||
void sub_080533CC(void);
|
||||
|
||||
void sub_08053494(void);
|
||||
void sub_080534AC(void);
|
||||
void sub_08053500(void);
|
||||
void InitBiggoronTimer(void);
|
||||
|
||||
u32 GetBottleContaining(u32);
|
||||
enum {
|
||||
GAMETASK_TRANSITION, /* transition from fileselect task */
|
||||
GAMETASK_INIT,
|
||||
GAMETASK_MAIN,
|
||||
GAMETASK_EXIT, /* gameover task or reset */
|
||||
};
|
||||
|
||||
enum {
|
||||
GAMEMAIN_INITROOM,
|
||||
GAMEMAIN_CHANGEROOM,
|
||||
GAMEMAIN_UPDATE,
|
||||
GAMEMAIN_CHANGEAREA,
|
||||
GAMEMAIN_MINISHPORTAL, /* moments after viewing portal cutscene */
|
||||
GAMEMAIN_BARRELUPDATE, /* barrel in deepwood shrine */
|
||||
GAMEMAIN_RESERVED,
|
||||
GAMEMAIN_SUBTASK,
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Subtasks override the game task for short periods
|
||||
*/
|
||||
enum {
|
||||
SUBTASK_EXIT,
|
||||
SUBTASK_PAUSEMENU,
|
||||
SUBTASK_EXIT2,
|
||||
SUBTASK_MAPHINT,
|
||||
SUBTASK_KINSTONEMENU,
|
||||
SUBTASK_AUXCUTSCENE, /* cutscene without presence of player */
|
||||
SUBTASK_PORTALCUTSCENE, /* player "falling" down portal cutscene */
|
||||
SUBTASK_FIGURINEMENU,
|
||||
SUBTASK_WORLDEVENT,
|
||||
SUBTASK_FASTTRAVEL,
|
||||
SUBTASK_LOCALMAPHINT,
|
||||
};
|
||||
|
||||
typedef void(Subtask)(void);
|
||||
Subtask Subtask_Exit;
|
||||
Subtask Subtask_PauseMenu;
|
||||
Subtask Subtask_Exit;
|
||||
Subtask Subtask_MapHint;
|
||||
Subtask Subtask_KinstoneMenu;
|
||||
Subtask Subtask_AuxCutscene;
|
||||
Subtask Subtask_PortalCutscene;
|
||||
Subtask Subtask_FigurineMenu;
|
||||
Subtask Subtask_WorldEvent;
|
||||
Subtask Subtask_FastTravel;
|
||||
Subtask Subtask_LocalMapHint;
|
||||
|
||||
#endif // GAME_H
|
||||
|
||||
+1
-1
@@ -280,7 +280,7 @@ extern u16 gWalletSizes[];
|
||||
extern PlayerState gPlayerState;
|
||||
extern Entity gPlayerEntity;
|
||||
|
||||
u32 CheckPlayerActivity(void);
|
||||
u32 CheckPlayerInactive(void);
|
||||
void SetPlayerControl(PlayerControlMode mode);
|
||||
void ResetPlayer(void);
|
||||
void ResetPlayerVelocity(void);
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ typedef struct {
|
||||
/*0x25C*/ u8 flags[0x200];
|
||||
/*0x45C*/ u8 unk45C[0x10];
|
||||
/*0x46C*/ u8 unk46C[0x20];
|
||||
/*0x48C*/ u32 unk48C[7];
|
||||
/*0x48C*/ u32 timers[7];
|
||||
/*0x4A8*/ u32 demo_timer;
|
||||
/*0x4AC*/ u8 filler4ac[0x8];
|
||||
} SaveFile;
|
||||
|
||||
Reference in New Issue
Block a user