mirror of
https://github.com/pmret/papermario.git
synced 2024-11-08 12:02:30 +01:00
appendGfx_message (#520)
* work on appendGfx_message * :OK: * indentation * message window states * PR comments * ran formatter * change some types * debuggin * undebuggin Co-authored-by: Alex Bates <hi@imalex.xyz>
This commit is contained in:
parent
81d3abc7a4
commit
34254d102e
@ -996,7 +996,7 @@ typedef struct MessagePrintState {
|
|||||||
/* 0x468 */ s8 lineCount;
|
/* 0x468 */ s8 lineCount;
|
||||||
/* 0x469 */ char unk_469[0x3];
|
/* 0x469 */ char unk_469[0x3];
|
||||||
/* 0x46C */ s32 unk_46C;
|
/* 0x46C */ s32 unk_46C;
|
||||||
/* 0x470 */ s8 currentAnimFrame[4];
|
/* 0x470 */ u8 currentAnimFrame[4];
|
||||||
/* 0x474 */ s16 animTimers[4];
|
/* 0x474 */ s16 animTimers[4];
|
||||||
/* 0x47C */ s8 rewindArrowAnimState;
|
/* 0x47C */ s8 rewindArrowAnimState;
|
||||||
/* 0x47D */ char unk_47D[0x1];
|
/* 0x47D */ char unk_47D[0x1];
|
||||||
@ -1005,11 +1005,11 @@ typedef struct MessagePrintState {
|
|||||||
/* 0x482 */ Vec2s rewindArrowPos;
|
/* 0x482 */ Vec2s rewindArrowPos;
|
||||||
/* 0x486 */ s8 currentLine;
|
/* 0x486 */ s8 currentLine;
|
||||||
/* 0x487 */ u8 unkArraySize;
|
/* 0x487 */ u8 unkArraySize;
|
||||||
/* 0x488 */ s16 lineEndPos[4];
|
/* 0x488 */ u16 lineEndPos[4];
|
||||||
/* 0x490 */ char unk_490[0x38];
|
/* 0x490 */ char unk_490[0x38];
|
||||||
/* 0x4C8 */ s16 unk_4C8;
|
/* 0x4C8 */ u16 unk_4C8;
|
||||||
/* 0x4CA */ s16 unk_4CA;
|
/* 0x4CA */ s16 unk_4CA;
|
||||||
/* 0x4CC */ s16 unk_4CC;
|
/* 0x4CC */ u16 unk_4CC;
|
||||||
/* 0x4CE */ s8 maxOption;
|
/* 0x4CE */ s8 maxOption;
|
||||||
/* 0x4CF */ char unk_4CF[0x1];
|
/* 0x4CF */ char unk_4CF[0x1];
|
||||||
/* 0x4D0 */ s16 cursorPosX[6];
|
/* 0x4D0 */ s16 cursorPosX[6];
|
||||||
@ -1028,10 +1028,10 @@ typedef struct MessagePrintState {
|
|||||||
/* 0x500 */ s16 delayFlags; // ?
|
/* 0x500 */ s16 delayFlags; // ?
|
||||||
/* 0x502 */ char unk_502[0x2];
|
/* 0x502 */ char unk_502[0x2];
|
||||||
/* 0x504 */ s32* closedWritebackBool; // if not null, writes 1 here when message closes
|
/* 0x504 */ s32* closedWritebackBool; // if not null, writes 1 here when message closes
|
||||||
/* 0x508 */ s8 style;
|
/* 0x508 */ u8 style;
|
||||||
/* 0x509 */ u8 fadeInCounter;
|
/* 0x509 */ u8 fadeInCounter;
|
||||||
/* 0x50A */ Vec2s initOpenPos; // where the message originates from, in screen-space coords
|
/* 0x50A */ Vec2s initOpenPos; // where the message originates from, in screen-space coords
|
||||||
/* 0x50E */ Vec2s openStartPos;
|
/* 0x50E */ Vec2su openStartPos;
|
||||||
/* 0x512 */ u8 fadeOutCounter;
|
/* 0x512 */ u8 fadeOutCounter;
|
||||||
/* 0x513 */ char unk_513[0x1];
|
/* 0x513 */ char unk_513[0x1];
|
||||||
/* 0x514 */ Vec2su windowSize;
|
/* 0x514 */ Vec2su windowSize;
|
||||||
@ -1046,17 +1046,17 @@ typedef struct MessagePrintState {
|
|||||||
/* 0x528 */ s16 varBufferReadPos;
|
/* 0x528 */ s16 varBufferReadPos;
|
||||||
/* 0x52A */ s8 unk_52A;
|
/* 0x52A */ s8 unk_52A;
|
||||||
/* 0x52B */ u8 currentImageIndex;
|
/* 0x52B */ u8 currentImageIndex;
|
||||||
/* 0x52C */ Vec2s varImageScreenPos; // in addition, posX=0 is taken as 'dont draw'
|
/* 0x52C */ Vec2su varImageScreenPos; // in addition, posX=0 is taken as 'dont draw'
|
||||||
/* 0x530 */ s8 varImgHasBorder;
|
/* 0x530 */ u8 varImgHasBorder;
|
||||||
/* 0x531 */ u8 varImgFinalAlpha;
|
/* 0x531 */ u8 varImgFinalAlpha;
|
||||||
/* 0x532 */ s8 varImgAlphaFadeStep; // how much to fade in per frame
|
/* 0x532 */ u8 varImgAlphaFadeStep; // how much to fade in per frame
|
||||||
/* 0x533 */ s8 varImageDisplayState; // 0 = fade in, 1 = fully visible, 2 = fade out
|
/* 0x533 */ u8 varImageDisplayState; // 0 = fade in, 1 = fully visible, 2 = fade out
|
||||||
/* 0x534 */ s16 varImageFadeTimer; // frames faded in
|
/* 0x534 */ s16 varImageFadeTimer; // frames faded in
|
||||||
/* 0x536 */ s16 msgHeight;
|
/* 0x536 */ s16 msgHeight;
|
||||||
/* 0x538 */ s16 msgWidth;
|
/* 0x538 */ u16 msgWidth;
|
||||||
/* 0x53A */ s8 maxLineChars;
|
/* 0x53A */ s8 maxLineChars;
|
||||||
/* 0x53B */ s8 numLines;
|
/* 0x53B */ s8 numLines;
|
||||||
/* 0x53C */ s8 maxLinesPerPage;
|
/* 0x53C */ u8 maxLinesPerPage;
|
||||||
/* 0x53D */ char unk_53D[0x3];
|
/* 0x53D */ char unk_53D[0x3];
|
||||||
/* 0x540 */ f32 sizeScale;
|
/* 0x540 */ f32 sizeScale;
|
||||||
/* 0x544 */ s32* letterBackgroundImg;
|
/* 0x544 */ s32* letterBackgroundImg;
|
||||||
@ -1073,26 +1073,27 @@ typedef struct MessageDrawState {
|
|||||||
/* 0x18 */ Vec2f charScale;
|
/* 0x18 */ Vec2f charScale;
|
||||||
/* 0x20 */ s32 drawBufferPos; // msg gets printed here and read for display
|
/* 0x20 */ s32 drawBufferPos; // msg gets printed here and read for display
|
||||||
/* 0x24 */ s16 savedPos[2];
|
/* 0x24 */ s16 savedPos[2];
|
||||||
/* 0x28 */ s8 savedColor;
|
/* 0x28 */ u8 savedColor;
|
||||||
/* 0x29 */ u8 unk_29;
|
/* 0x29 */ u8 unk_29;
|
||||||
/* 0x2A */ char unk_2A[0x1];
|
/* 0x2A */ char unk_2A[0x1];
|
||||||
/* 0x2B */ s8 framePalette;
|
/* 0x2B */ u8 framePalette;
|
||||||
/* 0x2C */ s8 unk_2C;
|
/* 0x2C */ s8 unk_2C;
|
||||||
/* 0x2D */ char unk_2D[0x1];
|
/* 0x2D */ u8 unk_2D;
|
||||||
/* 0x2E */ s8 centerPos;
|
/* 0x2E */ u8 centerPos;
|
||||||
/* 0x2F */ char unk_2F[0x1];
|
/* 0x2F */ char unk_2F[0x1];
|
||||||
/* 0x30 */ s32 visiblePrintedCount;
|
/* 0x30 */ s32 visiblePrintedCount;
|
||||||
/* 0x34 */ s16 printModeFlags; // C0 = center, 10 = drawing image
|
/* 0x34 */ u16 printModeFlags; // C0 = center, 10 = drawing image
|
||||||
/* 0x36 */ char unk_36[0x2];
|
/* 0x36 */ char unk_36[0x2];
|
||||||
/* 0x38 */ s32 effectFlags;
|
/* 0x38 */ u32 effectFlags;
|
||||||
/* 0x3C */ s16 font; // 0 or 1
|
/* 0x3C */ u16 font; // 0 or 1
|
||||||
/* 0x3E */ s16 fontVariant;
|
/* 0x3E */ u16 fontVariant;
|
||||||
/* 0x40 */ s16 currentPosX;
|
/* 0x40 */ u8 currentPosX;
|
||||||
/* 0x42 */ s16 nextPos[2];
|
/* 0x41 */ char unk_41;
|
||||||
|
/* 0x42 */ u16 nextPos[2];
|
||||||
/* 0x46 */ s16 textStartPos[2]; // relative to textbox
|
/* 0x46 */ s16 textStartPos[2]; // relative to textbox
|
||||||
/* 0x4A */ s16 textColor;
|
/* 0x4A */ s16 textColor;
|
||||||
/* 0x4C */ s8* printBuffer;
|
/* 0x4C */ u8* printBuffer;
|
||||||
/* 0x50 */ s8 nextCounter; // related to closing mssages and cmd FA
|
/* 0x50 */ u8 nextCounter; // related to closing mssages and cmd FA
|
||||||
/* 0x51 */ char unk_51[0x3];
|
/* 0x51 */ char unk_51[0x3];
|
||||||
} MessageDrawState; // size = 0x54
|
} MessageDrawState; // size = 0x54
|
||||||
|
|
||||||
@ -1100,14 +1101,14 @@ typedef struct MessageCharData {
|
|||||||
/* 0x0 */ s8* raster;
|
/* 0x0 */ s8* raster;
|
||||||
/* 0x4 */ u8* charWidthTable;
|
/* 0x4 */ u8* charWidthTable;
|
||||||
/* 0x8 */ u8 monospaceWidth;
|
/* 0x8 */ u8 monospaceWidth;
|
||||||
/* 0x9 */ s8 baseHeightOffset;
|
/* 0x9 */ u8 baseHeightOffset;
|
||||||
/* 0xA */ char unk_0A[0x2];
|
/* 0xA */ char unk_0A[0x2];
|
||||||
} MessageCharData; // size = 0xC
|
} MessageCharData; // size = 0xC
|
||||||
|
|
||||||
typedef struct MessageCharset {
|
typedef struct MessageCharset {
|
||||||
/* 0x0 */ Vec2b texSize;
|
/* 0x0 */ Vec2b texSize;
|
||||||
/* 0x2 */ s8 unk_02;
|
/* 0x2 */ s8 unk_02;
|
||||||
/* 0x3 */ s8 newLineY;
|
/* 0x3 */ u8 newLineY;
|
||||||
/* 0x4 */ s16 charRasterSize; // in bytes
|
/* 0x4 */ s16 charRasterSize; // in bytes
|
||||||
/* 0x6 */ char unk_06[0x2];
|
/* 0x6 */ char unk_06[0x2];
|
||||||
/* 0x8 */ MessageCharData* rasters;
|
/* 0x8 */ MessageCharData* rasters;
|
||||||
|
@ -2905,5 +2905,23 @@ enum ElementImmunityFlags {
|
|||||||
ELEMENT_IMMUNITY_FLAGS_40000000 = 0x40000000,
|
ELEMENT_IMMUNITY_FLAGS_40000000 = 0x40000000,
|
||||||
ELEMENT_IMMUNITY_FLAGS_80000000 = 0x80000000,
|
ELEMENT_IMMUNITY_FLAGS_80000000 = 0x80000000,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum MsgWindowStates {
|
||||||
|
MSG_WINDOW_STATE_DONE = 0x0,
|
||||||
|
MSG_WINDOW_STATE_INIT = 0x1,
|
||||||
|
MSG_WINDOW_STATE_OPENING = 0x2,
|
||||||
|
MSG_WINDOW_STATE_CLOSING = 0x3,
|
||||||
|
MSG_WINDOW_STATE_PRINTING = 0x4,
|
||||||
|
MSG_WINDOW_STATE_WAITING = 0x5,
|
||||||
|
MSG_WINDOW_STATE_SCROLLING = 0x6,
|
||||||
|
MSG_WINDOW_STATE_WAITING_FOR_CHOICE = 0x7,
|
||||||
|
MSG_WINDOW_STATE_SCROLLING_BACK = 0x8,
|
||||||
|
MSG_WINDOW_STATE_VIEWING_PREV = 0x9,
|
||||||
|
MSG_WINDOW_STATE_A = 0xA,
|
||||||
|
MSG_WINDOW_STATE_B = 0xB,
|
||||||
|
MSG_WINDOW_STATE_C = 0xC,
|
||||||
|
MSG_WINDOW_STATE_D = 0xD,
|
||||||
|
MSG_WINDOW_STATE_E = 0xE,
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -74,6 +74,9 @@ RenderTask* queue_render_task(RenderTask* task);
|
|||||||
|
|
||||||
void setup_pause_menu_tab(MenuWindowBP* bpArray, s32 arraySize);
|
void setup_pause_menu_tab(MenuWindowBP* bpArray, s32 arraySize);
|
||||||
|
|
||||||
|
s32 draw_ci_image_with_clipping(s32* raster, s32 width, s32 height, s32 fmt, s32 bitDepth, s32* palette, s16 posX,
|
||||||
|
s16 posY, u16 clipULx, u16 clipULy, u16 clipLRx, u16 clipRLy, u8 opacity);
|
||||||
|
|
||||||
// append gfx funcs
|
// append gfx funcs
|
||||||
void func_80257B28(s32);
|
void func_80257B28(s32);
|
||||||
void func_8025595C(Actor*);
|
void func_8025595C(Actor*);
|
||||||
@ -143,9 +146,9 @@ s32 player_test_lateral_overlap(s32, PlayerStatus*, f32*, f32*, f32*, f32, f32);
|
|||||||
Npc* peach_make_disguise_npc(s32 peachDisguise);
|
Npc* peach_make_disguise_npc(s32 peachDisguise);
|
||||||
void peach_set_disguise_anim(s32);
|
void peach_set_disguise_anim(s32);
|
||||||
|
|
||||||
void draw_box(s32 flags, s32 windowStyle, s32 posX, s32 posY, s32 posZ, s32 width, s32 height, s32 opacity,
|
void draw_box(s32 flags, s32 windowStyle, s32 posX, s32 posY, s32 posZ, s32 width, s32 height, u8 opacity,
|
||||||
s32 darkening, f32 scaleX, f32 scaleY, f32 rotX, f32 rotY, f32 rotZ, void (*fpDrawContents)(s32),
|
s32 darkening, f32 scaleX, f32 scaleY, f32 rotX, f32 rotY, f32 rotZ, void (*fpDrawContents)(s32),
|
||||||
s32 drawContentsArg0, Matrix4f rotScaleMtx, s32 translateX, s32 translateY, Matrix4f* outMtx);
|
void* drawContentsArg0, Matrix4f rotScaleMtx, s32 translateX, s32 translateY, Matrix4f* outMtx);
|
||||||
s32 get_msg_width(s32 msgID, u16 charset);
|
s32 get_msg_width(s32 msgID, u16 charset);
|
||||||
|
|
||||||
s32 partner_player_can_pause(void);
|
s32 partner_player_can_pause(void);
|
||||||
@ -373,6 +376,7 @@ void remove_part_shadow(s32 actorID, s32 partIndex);
|
|||||||
void create_part_shadow_by_ref(s32 arg0, ActorPart* part);
|
void create_part_shadow_by_ref(s32 arg0, ActorPart* part);
|
||||||
|
|
||||||
s32 func_80266D6C(ActorPart*, s32);
|
s32 func_80266D6C(ActorPart*, s32);
|
||||||
|
char* int_to_string(s32, char*, s32);
|
||||||
|
|
||||||
Evt* get_script_by_index(s32 index);
|
Evt* get_script_by_index(s32 index);
|
||||||
|
|
||||||
|
@ -339,7 +339,7 @@ typedef struct ActorSounds {
|
|||||||
/* 0x10 */ s32 jump;
|
/* 0x10 */ s32 jump;
|
||||||
/* 0x14 */ s32 hurt;
|
/* 0x14 */ s32 hurt;
|
||||||
/* 0x18 */ s16 delay[2]; ///< Number of frames to wait between walk/fly sounds. Negative values are in distance.
|
/* 0x18 */ s16 delay[2]; ///< Number of frames to wait between walk/fly sounds. Negative values are in distance.
|
||||||
} ActorSounds; // size = 0x20
|
} ActorSounds; // size = 0x1C
|
||||||
|
|
||||||
typedef struct ActorOffsets {
|
typedef struct ActorOffsets {
|
||||||
/* 0x00 */ Vec3b tattleCam;
|
/* 0x00 */ Vec3b tattleCam;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#! /usr/bin/python3
|
#! /usr/bin/python3
|
||||||
|
|
||||||
|
import json
|
||||||
import glob
|
import glob
|
||||||
import os
|
import os
|
||||||
|
|
||||||
@ -53,4 +54,4 @@ for thing in sorted(sizes.keys(), key=lambda x: sizes[x][4]):
|
|||||||
print(thing.ljust(25) + str(val))
|
print(thing.ljust(25) + str(val))
|
||||||
|
|
||||||
if print_funcs:
|
if print_funcs:
|
||||||
print(dict(sorted(funcs.items(), key=lambda f: f[1])))
|
print(json.dumps(dict(sorted(funcs.items(), key=lambda f: f[1])), indent=4))
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -338,8 +338,8 @@ glabel msg_draw_speech_bubble
|
|||||||
/* C381C 8012D11C ACA30004 */ sw $v1, 4($a1)
|
/* C381C 8012D11C ACA30004 */ sw $v1, 4($a1)
|
||||||
/* C3820 8012D120 24430008 */ addiu $v1, $v0, 8
|
/* C3820 8012D120 24430008 */ addiu $v1, $v0, 8
|
||||||
/* C3824 8012D124 AC830000 */ sw $v1, ($a0)
|
/* C3824 8012D124 AC830000 */ sw $v1, ($a0)
|
||||||
/* C3828 8012D128 3C058015 */ lui $a1, %hi(gMessageDrawStatePtr)
|
/* C3828 8012D128 3C058015 */ lui $a1, %hi(msg_drawState)
|
||||||
/* C382C 8012D12C 8CA55D74 */ lw $a1, %lo(gMessageDrawStatePtr)($a1)
|
/* C382C 8012D12C 8CA55D74 */ lw $a1, %lo(msg_drawState)($a1)
|
||||||
/* C3830 8012D130 3C03FD10 */ lui $v1, 0xfd10
|
/* C3830 8012D130 3C03FD10 */ lui $v1, 0xfd10
|
||||||
/* C3834 8012D134 AC430000 */ sw $v1, ($v0)
|
/* C3834 8012D134 AC430000 */ sw $v1, ($v0)
|
||||||
/* C3838 8012D138 90A5002B */ lbu $a1, 0x2b($a1)
|
/* C3838 8012D138 90A5002B */ lbu $a1, 0x2b($a1)
|
||||||
|
@ -19061,7 +19061,7 @@ gMessageMsgVars = 0x80155C38; // type:data
|
|||||||
D_80155C98 = 0x80155C98; // type:data
|
D_80155C98 = 0x80155C98; // type:data
|
||||||
gMessageWindowProjMatrix = 0x80155CA0; // type:data
|
gMessageWindowProjMatrix = 0x80155CA0; // type:data
|
||||||
D_80155D20 = 0x80155D20; // type:data
|
D_80155D20 = 0x80155D20; // type:data
|
||||||
gMessageDrawStatePtr = 0x80155D74; // type:data
|
msg_drawState = 0x80155D74; // type:data
|
||||||
D_80155D80 = 0x80155D80; // type:data
|
D_80155D80 = 0x80155D80; // type:data
|
||||||
D_80155D84 = 0x80155D84; // type:data
|
D_80155D84 = 0x80155D84; // type:data
|
||||||
D_80155D88 = 0x80155D88; // type:data
|
D_80155D88 = 0x80155D88; // type:data
|
||||||
|
@ -228,7 +228,7 @@ gMessageMsgVars = 0x80155C38;
|
|||||||
D_80155C98 = 0x80155C98;
|
D_80155C98 = 0x80155C98;
|
||||||
gMessageWindowProjMatrix = 0x80155CA0;
|
gMessageWindowProjMatrix = 0x80155CA0;
|
||||||
D_80155D20 = 0x80155D20;
|
D_80155D20 = 0x80155D20;
|
||||||
gMessageDrawStatePtr = 0x80155D74;
|
msg_drawState = 0x80155D74;
|
||||||
D_80155D80 = 0x80155D80;
|
D_80155D80 = 0x80155D80;
|
||||||
D_80155D84 = 0x80155D84;
|
D_80155D84 = 0x80155D84;
|
||||||
D_80155D88 = 0x80155D88;
|
D_80155D88 = 0x80155D88;
|
||||||
|
Loading…
Reference in New Issue
Block a user