mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-07-31 23:58:38 -04:00
Attempt to decompile setupLoadBriefing
This commit is contained in:
+85
-2
@@ -2664,7 +2664,7 @@ void setupHov(struct defaultobj *obj, struct hov *hov)
|
||||
|
||||
#if VERSION >= VERSION_PAL_FINAL
|
||||
GLOBAL_ASM(
|
||||
glabel func0f00e980
|
||||
glabel setupLoadBriefing
|
||||
/* f00e980: 27bdffc8 */ addiu $sp,$sp,-56
|
||||
/* f00e984: afb5002c */ sw $s5,0x2c($sp)
|
||||
/* f00e988: afb30024 */ sw $s3,0x24($sp)
|
||||
@@ -2799,7 +2799,7 @@ glabel func0f00e980
|
||||
);
|
||||
#else
|
||||
GLOBAL_ASM(
|
||||
glabel func0f00e980
|
||||
glabel setupLoadBriefing
|
||||
/* f00e980: 27bdffc8 */ addiu $sp,$sp,-56
|
||||
/* f00e984: afb5002c */ sw $s5,0x2c($sp)
|
||||
/* f00e988: afb30024 */ sw $s3,0x24($sp)
|
||||
@@ -2934,6 +2934,89 @@ glabel func0f00e980
|
||||
);
|
||||
#endif
|
||||
|
||||
// Mismatch: for loop is handled differently, as is obj->type
|
||||
//void setupLoadBriefing(s32 stagenum, u8 *buffer, s32 bufferlen, struct briefing *briefing)
|
||||
//{
|
||||
// if (stagenum < STAGE_TITLE) {
|
||||
// s32 stageindex = stageGetIndex(stagenum);
|
||||
// struct defaultobj *obj;
|
||||
// s32 setupfilenum;
|
||||
// s32 setupfilesize;
|
||||
// struct objective *objective;
|
||||
// struct briefingobj *briefingobj;
|
||||
// s32 i;
|
||||
// u8 *langbuffer;
|
||||
// s32 langbufferlen;
|
||||
// struct stagesetup *setup;
|
||||
//
|
||||
// if (stageindex < 0) {
|
||||
// stageindex = 0;
|
||||
// }
|
||||
//
|
||||
// setupfilenum = g_Stages[stageindex].setupfileid;
|
||||
// g_LoadType = LOADTYPE_LANG;
|
||||
//
|
||||
// if (g_Stages[stageindex].setupfileid);
|
||||
//
|
||||
// func0f167200(setupfilenum, 0x22, buffer, bufferlen);
|
||||
//
|
||||
// setup = (struct stagesetup *)buffer;
|
||||
// setupfilesize = fileGetSize(setupfilenum);
|
||||
// langbuffer = &buffer[setupfilesize];
|
||||
// langbufferlen = bufferlen - setupfilesize;
|
||||
//
|
||||
// briefing->langbank = langGetLangBankIndexFromStagenum(stagenum);
|
||||
//
|
||||
// langSetBank(briefing->langbank, langbuffer, langbufferlen);
|
||||
//
|
||||
// obj = (struct defaultobj *)((u32)setup + (u32)setup->props);
|
||||
//
|
||||
// if (obj != NULL) {
|
||||
// s32 wanttype = BRIEFINGTYPE_TEXT_PA;
|
||||
//
|
||||
// if (lvGetDifficulty() == DIFF_A) {
|
||||
// wanttype = BRIEFINGTYPE_TEXT_A;
|
||||
// }
|
||||
//
|
||||
// if (lvGetDifficulty() == DIFF_SA) {
|
||||
// wanttype = BRIEFINGTYPE_TEXT_SA;
|
||||
// }
|
||||
//
|
||||
// for (i = 0; i < 6; i++) {
|
||||
// briefing->objectivenames[i] = 0;
|
||||
// }
|
||||
//
|
||||
// briefing->briefingtextnum = L_MISC_042; // "No briefing for this mission"
|
||||
//
|
||||
// while (obj->type != OBJTYPE_END) {
|
||||
// switch (obj->type) {
|
||||
// case OBJTYPE_BRIEFING:
|
||||
// briefingobj = (struct briefingobj *)obj;
|
||||
//
|
||||
// if (briefingobj->type == BRIEFINGTYPE_TEXT_PA) {
|
||||
// briefing->briefingtextnum = briefingobj->text;
|
||||
// }
|
||||
//
|
||||
// if (briefingobj->type == wanttype) {
|
||||
// briefing->briefingtextnum = briefingobj->text;
|
||||
// }
|
||||
// break;
|
||||
// case OBJTYPE_BEGINOBJECTIVE:
|
||||
// objective = (struct objective *)obj;
|
||||
//
|
||||
// if (objective->index < 7U) {
|
||||
// briefing->objectivenames[objective->index] = objective->text;
|
||||
// briefing->objectivedifficulties[objective->index] = objective->difficulties;
|
||||
// }
|
||||
// break;
|
||||
// }
|
||||
//
|
||||
// obj = (struct defaultobj *)((u32 *)obj + setupGetCommandLength((u32 *)obj));
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
void setupLoadFiles(s32 stagenum)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
+1
-1
@@ -800,7 +800,7 @@ s32 menudialog00103608(s32 operation, struct menudialogdef *dialogdef, union han
|
||||
case MENUOP_OPEN:
|
||||
g_Menus[g_MpPlayerNum].unk840.unk010 = 0;
|
||||
|
||||
func0f00e980(g_MissionConfig.stagenum,
|
||||
setupLoadBriefing(g_MissionConfig.stagenum,
|
||||
g_Menus[g_MpPlayerNum].unk840.unk004,
|
||||
g_Menus[g_MpPlayerNum].unk840.unk008, &g_Briefing);
|
||||
break;
|
||||
|
||||
@@ -1337,6 +1337,7 @@
|
||||
#define LOADTYPE_NONE 0
|
||||
#define LOADTYPE_BG 1
|
||||
#define LOADTYPE_TILES 2
|
||||
#define LOADTYPE_LANG 3
|
||||
#define LOADTYPE_SETUP 4
|
||||
#define LOADTYPE_PADS 5
|
||||
#define LOADTYPE_MODEL 6
|
||||
|
||||
@@ -27,7 +27,7 @@ s32 func0f00e1f8(s32 padnum);
|
||||
s32 func0f00e2b0(s32 padnum);
|
||||
void setupDoor(struct doorobj *door, s32 cmdindex);
|
||||
void setupHov(struct defaultobj *obj, struct hov *hov);
|
||||
void func0f00e980(s32 stagenum, u8 *arg0, s32 arg1, struct briefing *briefing);
|
||||
void setupLoadBriefing(s32 stagenum, u8 *buffer, s32 bufferlen, struct briefing *briefing);
|
||||
void setupLoadFiles(s32 stagenum);
|
||||
void setupParseObjects(s32 stagenum);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user