summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPrakxo <87568477+Prakxo@users.noreply.github.com>2023-12-21 16:50:42 +0100
committerGitHub <noreply@github.com>2023-12-21 08:50:42 -0700
commit72514d5aae62cc9789b2de0d3d3ba764be2c168d (patch)
treeb3e91ff0fd9320f6ee021f8cebd046683f0cd5d4 /include
parent45e93dc1b6a859a5f27f3f2b52630598a8d11ad1 (diff)
m_select OK (#128)
* m_select OK * format
Diffstat (limited to 'include')
-rw-r--r--include/6BA500.h2
-rw-r--r--include/libu64/gfxprint.h8
-rw-r--r--include/m_common_data.h15
-rw-r--r--include/m_private.h19
-rw-r--r--include/m_private_internals.h6
-rw-r--r--include/m_rcp.h2
-rw-r--r--include/m_scene_table.h42
-rw-r--r--include/m_view.h33
8 files changed, 103 insertions, 24 deletions
diff --git a/include/6BA500.h b/include/6BA500.h
index 5db7e1e..e80d8fb 100644
--- a/include/6BA500.h
+++ b/include/6BA500.h
@@ -4,7 +4,7 @@
#include "ultra64.h"
// void func_80096860_jp();
-// void func_800968C0_jp();
+void func_800968C0_jp(void);
// void func_80096B2C_jp();
// void func_80096B4C_jp();
void func_80096B64_jp(void);
diff --git a/include/libu64/gfxprint.h b/include/libu64/gfxprint.h
index 27d7cf6..a3aae97 100644
--- a/include/libu64/gfxprint.h
+++ b/include/libu64/gfxprint.h
@@ -39,6 +39,14 @@ typedef struct gfxprint {
#define GFXPRINT_UNUSED_CHAR '\x8E'
+#define GFXPRINT_CLEAR_GRADIENT "\x8A"
+#define GFXPRINT_ENABLE_GRADIENT "\x8B"
+
+#define GFXPRINT_KATAKANA_MODE "\x8C"
+#define GFXPRINT_HIRAGANA_MODE "\x8D"
+
+#define GFXPRINT_UNUSED "\x8E"
+
/* Macros for quickly checking state of gfxprint struct */
#define gfxprint_isFlagOn(this, flag) ((this->flags & flag) != 0)
#define gfxprint_setFlag(this, flag) (this->flags |= flag)
diff --git a/include/m_common_data.h b/include/m_common_data.h
index b592f64..c98be21 100644
--- a/include/m_common_data.h
+++ b/include/m_common_data.h
@@ -179,7 +179,8 @@ typedef struct CommonData {
/* 0x0F428 */ u64 melody;
/* 0x0F430 */ UNK_TYPE1 unk_F430[0x8];
/* 0x0F438 */ u8 stationType;
- /* 0x0F439 */ u8 unk_F439[0x3];
+ /* 0x0F439 */ u8 saveWeather;
+ /* 0x0F440 */ u8 unk_F440[0x2];
/* 0x0F43C */ u16 deposit[FG_BLOCK_X_NUM * FG_BLOCK_Z_NUM][UT_Z_NUM]; // flags for which items are buried around town
/* 0x0F7FC */ lbRTC_time_c lastGrowTime;
/* 0x0F804 */ PrivateMotherMail motherMailInfo[PLAYER_NUM];
@@ -231,9 +232,15 @@ typedef struct CommonData {
/* 0x104AD */ u8 unk_104AD;
/* 0x104AE */ u8 sunlightFlag;
/* 0x104AF */ UNK_TYPE1 unk_104AF[0x1];
- /* 0x104B0 */ UNK_TYPE1 unk_104B0[0xE8];
+ /* 0x104B0 */ UNK_TYPE1 unk_104B0[0xBC];
+ /* 0x1056C */ s16 weather;
+ /* 0x1056E */ s16 weatherIntensity;
+ /* 0x10570 */ lbRTC_time_c weatherTime;
+ /* 0x10578 */ s_xyz wind;
+ /* 0x10580 */ f32 windSpeed;
+ /* 0x10584 */ UNK_TYPE1 unk10584[0x14];
/* 0x10598 */ mQst_not_saved_c quest;
- /* 0x105A0 */ u32 sceneFromTitleDemo;
+ /* 0x105A0 */ s32 sceneFromTitleDemo;
/* 0x105A4 */ NpsSchedule npcSchedule[ANIMAL_NUM_MAX];
/* 0x10694 */ NpcWalking npcWalk;
/* 0x10710 */ NpcEvent npcEvent[5];
@@ -245,7 +252,7 @@ typedef struct CommonData {
/* 0x107A4 */ UNK_TYPE1 unk_107A4[0x12];
/* 0x107B6 */ s16 unk_107B6; // named "demo_profile" in AC GCN decomp (though it's an array of two s16s in that game)
/* 0x107B8 */ UNK_TYPE1 unk_107B8[0x28];
- /* 0x107E0 */ s8 player_decoy_flag;
+ /* 0x107E0 */ s8 playerDecoyFlag;
/* 0x107E1 */ UNK_TYPE1 unk_107E1[0x3];
/* 0x107E4 */ s16 unk_107E4;
/* 0x107E6 */ UNK_TYPE1 unk107E6[0x252];
diff --git a/include/m_private.h b/include/m_private.h
index 7448960..e566576 100644
--- a/include/m_private.h
+++ b/include/m_private.h
@@ -26,10 +26,23 @@ typedef enum mPr_ITEM_COND{
/* 3 */ mPr_ITEM_COND_NUM
} mPr_ITEM_COND;
+typedef enum mPr_FACE_TYPE {
+ /* 0 */ mPr_FACE_TYPE0,
+ /* 1 */ mPr_FACE_TYPE1,
+ /* 2 */ mPr_FACE_TYPE2,
+ /* 3 */ mPr_FACE_TYPE3,
+ /* 4 */ mPr_FACE_TYPE4,
+ /* 5 */ mPr_FACE_TYPE5,
+ /* 6 */ mPr_FACE_TYPE6,
+ /* 7 */ mPr_FACE_TYPE7,
+ /* 8 */ mPr_FACE_TYPE_NUM
+} mPr_FACE_TYPE;
+
typedef struct PrivateInfo {
/* 0x000 */ PersonalID_c playerId;
/* 0x010 */ s8 gender;
- /* 0x011 */ UNK_TYPE1 unk_011[0x3];
+ /* 0x011 */ s8 face;
+ /* 0x012 */ UNK_TYPE1 unk_012[0x2];
/* 0x014 */ PrivateInventory inventory;
/* 0x040 */ mQst_delivery_c deliveries[mPr_DELIVERY_QUEST_NUM]; /* delivery quests */
/* 0x25C */ QuestErrand errands[mPr_ERRAND_QUEST_NUM]; /* errand quests */
@@ -38,7 +51,9 @@ typedef struct PrivateInfo {
/* 0x40A */ Mail_c unk_40A[10];
/* 0xA72 */ UNK_TYPE1 unk_A72[0x2];
/* 0xA74 */ u8 exists;
- /* 0xA75 */ UNK_TYPE1 unk_A75[0x11];
+ /* 0xA75 */ UNK_TYPE1 unkA75[1];
+ /* 0xA76 */ PrivateCloth cloth;
+ /* 0xA7A */ UNK_TYPE1 unkA7A[0xC];
/* 0xA86 */ Private_Sub_A86 unk_A86;
/* 0xA90 */ UNK_TYPE1 unk_A90[0x3C];
/* 0xACC */ Anmremail remail;
diff --git a/include/m_private_internals.h b/include/m_private_internals.h
index 914f857..2bdd1f2 100644
--- a/include/m_private_internals.h
+++ b/include/m_private_internals.h
@@ -48,4 +48,10 @@ typedef struct PrivateInventory {
/* 0x28 */ u32 loan;
} PrivateInventory; // size = 0x2C
+typedef struct PrivateCloth {
+ /* 0x00 */ u16 id;
+ /* 0x02 */ u16 item;
+} PrivateCloth; // size = 0x4
+
+
#endif
diff --git a/include/m_rcp.h b/include/m_rcp.h
index 6d6c641..f8e5298 100644
--- a/include/m_rcp.h
+++ b/include/m_rcp.h
@@ -25,7 +25,7 @@ void func_800BD5E8_jp(struct GraphicsContext *gfxCtx);
// void func_800BD6D0_jp();
// void func_800BD6F8_jp();
Gfx* func_800BD720_jp(Gfx* gfx);
-// void func_800BD748_jp();
+void rect_moji(struct GraphicsContext*);
// void func_800BD770_jp();
// void func_800BD798_jp();
Gfx* func_800BD7C0_jp(Gfx* gfx);
diff --git a/include/m_scene_table.h b/include/m_scene_table.h
index 9adf609..d049a5f 100644
--- a/include/m_scene_table.h
+++ b/include/m_scene_table.h
@@ -4,10 +4,44 @@
#include "ultra64.h"
#include "z64math.h"
-#define SCENE_FG 7
-#define SCENE_START_DEMO 15
-#define SCENE_START_DEMO2 16
-
+typedef enum SceneTable {
+ /* 00 */ SCENE_TEST1,
+ /* 01 */ SCENE_TEST2,
+ /* 02 */ SCENE_TEST3,
+ /* 03 */ SCENE_WATER_TEST,
+ /* 04 */ SCENE_FOOTPRINT_TEST,
+ /* 05 */ SCENE_NPC_TEST,
+ /* 06 */ SCENE_NPC_HOUSE, /* npc house interior */
+ /* 07 */ SCENE_FG, /* outdoors/FG */
+ /* 08 */ SCENE_RANDOM_NPC_TEST,
+ /* 09 */ SCENE_SHOP0, /* nook's cranny */
+ /* 10 */ SCENE_BG_TEST_NO_RIVER,
+ /* 11 */ SCENE_BG_TEST_RIVER,
+ /* 12 */ SCENE_BROKER_SHOP, /* crazy redd's tent */
+ /* 13 */ SCENE_FIELD_TOOL_INSIDE,
+ /* 14 */ SCENE_POST_OFFICE, /* post office */
+ /* 15 */ SCENE_START_DEMO, /* after player select */
+ /* 16 */ SCENE_START_DEMO2, /* */
+ /* 17 */ SCENE_POLICE_BOX,
+ /* 18 */ SCENE_BUGGY,
+ /* 19 */ SCENE_PLAYERSELECT,
+ /* 20 */ SCENE_MY_ROOM_S,
+ /* 21 */ SCENE_MY_ROOM_M,
+ /* 22 */ SCENE_MY_ROOM_L,
+ /* 23 */ SCENE_CONVENI, /* nook 'n' go */
+ /* 24 */ SCENE_SUPER, /* nookway */
+ /* 25 */ SCENE_DEPART, /* nookington's 1st floor */
+ /* 26 */ SCENE_TEST5,
+ /* 27 */ SCENE_PLAYERSELECT_2,
+ /* 28 */ SCENE_PLAYERSELECT_3,
+ /* 29 */ SCENE_DEPART_2, /* nookington's 2nd floor */
+ /* 30 */ SCENE_EVENT_ANNOUNCEMENT,
+ /* 31 */ SCENE_KAMAKURA,
+ /* 32 */ SCENE_FIELD_TOOL,
+ /* 33 */ SCENE_TITLE_DEMO, /* title screen demo */
+ /* 34 */ SCENE_PLAYERSELECT_SAVE,
+ /* 35 */ SCENE_NUM
+} SceneTable;
extern Struct_8010EAA0 scene_data_status[];
#endif
diff --git a/include/m_view.h b/include/m_view.h
index 346c2bc..72a0566 100644
--- a/include/m_view.h
+++ b/include/m_view.h
@@ -8,12 +8,16 @@
struct Game_Play;
struct GraphicsContext;
+typedef struct Viewport {
+ /* 0x00 */ s32 topY; // uly (upper left y)
+ /* 0x04 */ s32 bottomY; // lry (lower right y)
+ /* 0x08 */ s32 leftX; // ulx (upper left x)
+ /* 0x0C */ s32 rightX; // lrx (lower right x)
+} Viewport; // size = 0x10
+
typedef struct Game_Play1938 {
/* 0x000 */ UNK_TYPE1 unk_000[0x8];
- /* 0x008 */ s32 unk_008;
- /* 0x00C */ s32 unk_00C;
- /* 0x010 */ s32 unk_010;
- /* 0x018 */ s32 unk_014;
+ /* 0x008 */ Viewport viewport;
/* 0x01C */ UNK_TYPE1 unk_018[0x10];
/* 0x028 */ xyz_t unk_028;
/* 0x034 */ UNK_TYPE1 unk_034[0x1C];
@@ -25,12 +29,17 @@ typedef struct Game_Play1938 {
/* 0x124 */ UNK_TYPE1 unk_124[0x4];
} Game_Play1938; // size = 0x128
-typedef struct ScissorViewArg1 {
- /* 0x00 */ s32 unk_00;
- /* 0x04 */ s32 unk_04;
- /* 0x08 */ s32 unk_08;
- /* 0x0C */ s32 unk_0C;
-} ScissorViewArg1; // size = 0x10
+
+#define SET_FULLSCREEN_VIEWPORT(view) \
+ { \
+ Viewport viewport; \
+ viewport.bottomY = SCREEN_HEIGHT; \
+ viewport.rightX = SCREEN_WIDTH; \
+ viewport.topY = 0; \
+ viewport.leftX = 0; \
+ setScissorView(view, &viewport); \
+ } \
+ (void)0
// void set_viewport();
void initView(Game_Play1938* arg0, struct GraphicsContext* gfxCtx);
@@ -40,14 +49,14 @@ void initView(Game_Play1938* arg0, struct GraphicsContext* gfxCtx);
// void getScaleView();
// void setPerspectiveView();
// void getPerspectiveView();
-void setScissorView(Game_Play1938* arg0, ScissorViewArg1* arg1);
+void setScissorView(Game_Play1938* arg0, Viewport* arg1);
// void getScissorView();
// void setScissorX();
// void setScissorOvl();
// void setScissor();
// void stretchViewInit();
// void do_stretch_view();
-void showView(Game_Play1938* arg0, s32 arg1, struct Game_Play* game_play);
+void showView(Game_Play1938* arg0, s32 arg1);
// void showPerspectiveView();
// void showOrthoView();
// void showOverLayView();