![]() |
Super Mario 64 Source
A Super Mario 64 decompilation, brought to you by a bunch of clever folks.
|
#include <ultra64.h>#include "sm64.h"#include "memory.h"#include "types.h"#include "audio/external.h"#include "seq_ids.h"#include "game.h"#include "save_file.h"#include "level_update.h"#include "camera.h"#include "text_strings.h"#include "segment2.h"#include "segment7.h"#include "eu_translation.h"#include "ingame_menu.h"#include "engine/math_util.h"Data Structures | |
| struct | MultiTextEntry |
Macros | |
| #define | ASCII_TO_DIALOG(asc) |
| #define | DEFAULT_DIALOG_BOX_ANGLE 90.0f |
| #define | DEFAULT_DIALOG_BOX_SCALE 19.0f |
| #define | MAX_STRING_WIDTH 16 |
| #define | TEXT_THE_RAW ASCII_TO_DIALOG('t'), ASCII_TO_DIALOG('h'), ASCII_TO_DIALOG('e'), 0x00 |
| #define | TEXT_YOU_RAW ASCII_TO_DIALOG('y'), ASCII_TO_DIALOG('o'), ASCII_TO_DIALOG('u'), 0x00 |
| #define | X_VAL1 -7.0f |
| #define | Y_VAL1 5.0 |
| #define | Y_VAL2 5.0f |
| #define | X_VAL3 0.0f |
| #define | Y_VAL3 16 |
| #define | X_VAL4_1 56 |
| #define | X_VAL4_2 47 |
| #define | Y_VAL4_1 2 |
| #define | Y_VAL4_2 16 |
| #define | DIAG_VAL1 16 |
| #define | DIAG_VAL3 132 |
| #define | DIAG_VAL4 5 |
| #define | DIAG_VAL2 240 |
| #define | PEACH_MESSAGE_TIMER 250 |
| #define | STR_X 38 |
| #define | STR_Y 142 |
| #define | CRS_NUM_X1 100 |
| #define | TXT_STAR_X 98 |
| #define | ACT_NAME_X 116 |
| #define | LVL_NAME_X 117 |
| #define | TXT1_X 3 |
| #define | TXT2_X 119 |
| #define | Y_VAL7 2 |
| #define | X_VAL8 4 |
| #define | Y_VAL8 2 |
| #define | TXT_HISCORE_X 109 |
| #define | TXT_HISCORE_Y 36 |
| #define | TXT_CONGRATS_X 70 |
| #define | TXT_NAME_X1 71 |
| #define | TXT_NAME_X2 69 |
| #define | CRS_NUM_X2 104 |
| #define | CRS_NUM_X3 102 |
| #define | TXT_CLEAR_X1 get_str_width(name) + 81 |
| #define | TXT_CLEAR_X2 get_str_width(name) + 79 |
| #define | TXT_SAVECONT_Y 0 |
| #define | TXT_SAVEQUIT_Y 20 |
| #define | TXT_CONTNOSAVE_Y 40 |
| #define | X_VAL9 x |
Enumerations | |
| enum | DialogBoxState { DIALOG_STATE_OPENING, DIALOG_STATE_WAITBUTTON, DIALOG_STATE_SCROLLING, DIALOG_STATE_CLOSING } |
| enum | DialogBoxType { DIALOG_TYPE_ROTATE, DIALOG_TYPE_ZOOM } |
| enum | HudSpecialChars { HUD_CHAR_SYM_X = 0x32, HUD_CHAR_SYM_COIN = 0x33, HUD_CHAR_SYM_MARIO = 0x34, HUD_CHAR_SYM_STAR = 0x35, HUD_CHAR_SPACE = 0x9E } |
| enum | DialogSpecialChars { DIALOG_CHAR_HANDAKUTEN = 0x6E, DIALOG_CHAR_COMMA = 0x6F, DIALOG_CHAR_SPACE = 0x9E, DIALOG_CHAR_STAR_COUNT = 0xE0, DIALOG_CHAR_PREFIX_DAKUTEN = 0xF0, DIALOG_CHAR_PREFIX_HANDAKUTEN = 0xF1, DIALOG_CHAR_STAR_FILLED = 0xFA, DIALOG_CHAR_STAR_OPEN = 0xFD, DIALOG_CHAR_NEWLINE = 0xFE, DIALOG_CHAR_TERMINATOR = 0xFF } |
| enum | DialogMark { DIALOG_MARK_NONE = 0, DIALOG_MARK_DAKUTEN = 1, DIALOG_MARK_HANDAKUTEN = 2 } |
| enum | MutliStringIDs { STRING_THE, STRING_YOU } |
| #define ACT_NAME_X 116 |
| #define ASCII_TO_DIALOG | ( | asc | ) |
| #define CRS_NUM_X1 100 |
| #define CRS_NUM_X2 104 |
| #define CRS_NUM_X3 102 |
| #define DEFAULT_DIALOG_BOX_ANGLE 90.0f |
| #define DEFAULT_DIALOG_BOX_SCALE 19.0f |
| #define DIAG_VAL1 16 |
| #define DIAG_VAL2 240 |
| #define DIAG_VAL3 132 |
| #define DIAG_VAL4 5 |
| #define LVL_NAME_X 117 |
| #define MAX_STRING_WIDTH 16 |
| #define PEACH_MESSAGE_TIMER 250 |
| #define STR_X 38 |
| #define STR_Y 142 |
| #define TEXT_THE_RAW ASCII_TO_DIALOG('t'), ASCII_TO_DIALOG('h'), ASCII_TO_DIALOG('e'), 0x00 |
| #define TEXT_YOU_RAW ASCII_TO_DIALOG('y'), ASCII_TO_DIALOG('o'), ASCII_TO_DIALOG('u'), 0x00 |
| #define TXT1_X 3 |
| #define TXT2_X 119 |
| #define TXT_CLEAR_X1 get_str_width(name) + 81 |
| #define TXT_CLEAR_X2 get_str_width(name) + 79 |
| #define TXT_CONGRATS_X 70 |
| #define TXT_CONTNOSAVE_Y 40 |
| #define TXT_HISCORE_X 109 |
| #define TXT_HISCORE_Y 36 |
| #define TXT_NAME_X1 71 |
| #define TXT_NAME_X2 69 |
| #define TXT_SAVECONT_Y 0 |
| #define TXT_SAVEQUIT_Y 20 |
| #define TXT_STAR_X 98 |
| #define X_VAL1 -7.0f |
| #define X_VAL3 0.0f |
| #define X_VAL4_1 56 |
| #define X_VAL4_2 47 |
| #define X_VAL8 4 |
| #define X_VAL9 x |
| #define Y_VAL1 5.0 |
| #define Y_VAL2 5.0f |
| #define Y_VAL3 16 |
| #define Y_VAL4_1 2 |
| #define Y_VAL4_2 16 |
| #define Y_VAL7 2 |
| #define Y_VAL8 2 |
| enum DialogBoxState |
| enum DialogBoxType |
| enum DialogMark |
| enum DialogSpecialChars |
| enum HudSpecialChars |
| enum MutliStringIDs |
| for | ( | ) |
| void func_802D8134 | ( | struct DialogEntry * | dialog, |
| s8 | sp47 | ||
| ) |
| void func_802D8980 | ( | s8 | sp63, |
| struct DialogEntry * | dialog, | ||
| s8 | sp5B | ||
| ) |
Probably originally a >=, but later replaced with an == and an else statement.
| Gfx castle_grounds_seg7_dl_0700EA58[] |
| Gfx castle_grounds_seg7_us_dl_0700F2E8[] |
| Gfx coin_seg3_dl_03007940[] |
| Gfx coin_seg3_dl_03007968[] |
| Gfx coin_seg3_dl_03007990[] |
| Gfx coin_seg3_dl_030079B8[] |
| s16 D_8033042C = 0 |
| s8 D_80330430 = 1 |
| s8 D_80330434 = 0 |
| u8 D_80330438 = 0 |
| u8 D_8033043C = 0 |
| s16 D_8033047C = -1 |
| s8 D_80330530 = 1 |
| s8 D_80330534 = 1 |
| s8 D_803305C0 = 0 |
| s32 D_803305C4 = 0 |
| s32 D_803305C8 = 0 |
| s8 D_803305CC = 0 |
| u16 D_80360080 |
| u16 D_80360088 |
| s8 D_8036008E |
| s16 gCurrCourseNum |
| s16 gCurrSaveFileNum |
| s16 gCutsceneMsgDuration = -1 |
| u16 gCutsceneMsgFade = 0 |
| s16 gCutsceneMsgIndex = -1 |
| s16 gCutsceneMsgTimer = 0 |
| s16 gCutsceneMsgXOffset |
| s16 gCutsceneMsgYOffset |
| f32 gDialogBoxOpenTimer = DEFAULT_DIALOG_BOX_ANGLE |
| f32 gDialogBoxScale = DEFAULT_DIALOG_BOX_SCALE |
| s8 gDialogBoxState = DIALOG_STATE_OPENING |
| s8 gDialogBoxType = DIALOG_TYPE_ROTATE |
| u8 gDialogCharWidths[256] |
| s16 gDialogID = -1 |
| s32 gDialogResponse = 0 |
| s16 gDialogScrollOffsetY = 0 |
| s32 gDialogVariable |
| Gfx* gDisplayListHead |
| u8 gEndCutsceneStrEn0[] = { TEXT_FILE_MARIO_EXCLAMATION } |
| u8 gEndCutsceneStrEn1[] = { TEXT_POWER_STARS_RESTORED } |
| u8 gEndCutsceneStrEn2[] = { TEXT_THANKS_TO_YOU } |
| u8 gEndCutsceneStrEn3[] = { TEXT_THANK_YOU_MARIO } |
| u8 gEndCutsceneStrEn4[] = { TEXT_SOMETHING_SPECIAL } |
| u8 gEndCutsceneStrEn5[] = { TEXT_COME_ON_EVERYBODY } |
| u8 gEndCutsceneStrEn6[] = { TEXT_LETS_HAVE_CAKE } |
| u8 gEndCutsceneStrEn7[] = { TEXT_FOR_MARIO } |
| u8 gEndCutsceneStrEn8[] = { TEXT_FILE_MARIO_QUESTION } |
| u8* gEndCutsceneStringsEn[] |
| s32 gGlobalTimer |
| u8 gHudSymCoin[] = { HUD_CHAR_SYM_COIN, 0xFF } |
| u8 gHudSymX[] = { HUD_CHAR_SYM_X, 0xFF } |
| u8 gLastCompletedCourseNum |
| u8 gLastCompletedStarNum |
| s8 gLastDialogLineNum |
| s16 gLastDialogPageStrPos = 0 |
| u8 main_menu_seg7_table_0700ABD0[] |
| struct MultiTextEntry textLengths[2] |
1.8.13