Decompile gasRender
This commit is contained in:
parent
572688668e
commit
15c067fe36
|
@ -132,9 +132,9 @@ The decomp project wraps all decompiled piracy checks in `#if PIRACYCHECKS` stat
|
|||
|
||||
---
|
||||
|
||||
### func0f0069dc
|
||||
### menuTickTimers
|
||||
|
||||
**When Called:** Unknown.
|
||||
**When Called:** On every frame except credits.
|
||||
|
||||
**What It Checks:** Checksums `func00015fd0` to make sure it hasn't been modified.
|
||||
|
||||
|
@ -144,7 +144,7 @@ The decomp project wraps all decompiled piracy checks in `#if PIRACYCHECKS` stat
|
|||
|
||||
**When Called:** Unknown.
|
||||
|
||||
**What It Checks:** Checksums `func0f0069dc` to make sure it hasn't been modified.
|
||||
**What It Checks:** Checksums `menuTickTimers` to make sure it hasn't been modified.
|
||||
|
||||
**Payload:** Corrupts `bgBuildTables` by adding a fixed amount to 16 bytes within that function.
|
||||
|
||||
|
|
|
@ -179,7 +179,7 @@ s32 amPickTargetMenuList(s32 operation, struct menuitem *item, union handlerdata
|
|||
colour = teamcolours[g_MpAllChrConfigPtrs[chrindex]->team] | renderdata->colour & 0xff;
|
||||
|
||||
if (renderdata->unk10) {
|
||||
u32 weight = func0f006b08(40) * 255;
|
||||
u32 weight = menuGetSinOscFrac(40) * 255;
|
||||
colour = colourBlend(renderdata->colour | 0xffffff00, colourBlend(colour, colour & 0xff, 0x7f), weight);
|
||||
}
|
||||
|
||||
|
@ -1240,7 +1240,7 @@ Gfx *amRenderSlot(Gfx *gdl, char *text, s16 x, s16 y, s32 mode, s32 flags)
|
|||
}
|
||||
|
||||
if (flags & AMSLOTFLAG_ACTIVE) {
|
||||
colour = colourBlend(0xffaf8fff, colour, func0f006b54(10) * 255.0f);
|
||||
colour = colourBlend(0xffaf8fff, colour, menuGetCosOscFrac(10) * 255.0f);
|
||||
}
|
||||
|
||||
colour = (u32)(g_AmMenus[g_AmIndex].alphafrac * (colour & 0xff)) | (colour & 0xffffff00);
|
||||
|
|
|
@ -3763,8 +3763,8 @@ void func0f15c920(void)
|
|||
#if PIRACYCHECKS
|
||||
if ((var8007fc3c & 0xff) == 0xff) {
|
||||
u32 checksum = 0;
|
||||
s32 *ptr = (s32 *)&func0f0069dc;
|
||||
s32 *end = (s32 *)&func0f006b08;
|
||||
s32 *ptr = (s32 *)&menuTickTimers;
|
||||
s32 *end = (s32 *)&menuGetSinOscFrac;
|
||||
|
||||
while (ptr < end) {
|
||||
checksum ^= ~*ptr;
|
||||
|
|
|
@ -12103,7 +12103,7 @@ void bgunTickMaulerCharge(void)
|
|||
}
|
||||
|
||||
if (hand->audiohandle) {
|
||||
f32 speed = 0.5f + hand->matmot1 / 3.0f + sinf(var80061630 * M_PI * 32.0f) * 0.03f;
|
||||
f32 speed = 0.5f + hand->matmot1 / 3.0f + sinf(g_20SecIntervalFrac * M_PI * 32.0f) * 0.03f;
|
||||
|
||||
if (hand->matmot1 < 0.1f || !charging) {
|
||||
audioStop(hand->audiohandle);
|
||||
|
@ -16812,7 +16812,7 @@ Gfx *bgunDrawHud(Gfx *gdl)
|
|||
gDPFillRectangleScaled(gdl++, x - 1, y - 1, xpos - 11, bottom);
|
||||
|
||||
gdl = text0f153838(gdl);
|
||||
textSetWaveBlend(var80061630 * 50.0f, 0, 50);
|
||||
textSetWaveBlend(g_20SecIntervalFrac * 50.0f, 0, 50);
|
||||
textSetWaveColours(0xffffffff, 0xffffffff);
|
||||
gdl = textRenderProjected(gdl, &x, &y, str, g_CharsHandelGothicXs, g_FontHandelGothicXs, colour, textwidth, 1000, 0, 0);
|
||||
textResetBlends();
|
||||
|
@ -16880,7 +16880,7 @@ Gfx *bgunDrawHud(Gfx *gdl)
|
|||
|
||||
gdl = text0f153838(gdl);
|
||||
|
||||
textSetWaveBlend(var80061630 * 50.0f, 0, 50);
|
||||
textSetWaveBlend(g_20SecIntervalFrac * 50.0f, 0, 50);
|
||||
textSetWaveColours(0xffffffff, 0xffffffff);
|
||||
|
||||
gdl = textRenderProjected(gdl, &x, &y, str,
|
||||
|
|
|
@ -328,7 +328,7 @@ Gfx *bviewDrawSlayerRocketInterlace(Gfx *gdl, u32 colour, u32 alpha)
|
|||
s32 y;
|
||||
s32 viewleft = viGetViewLeft();
|
||||
f32 angle = 0.52359879016876f;
|
||||
s32 offset = (s32)(var80061630 * 600.0f) % 12;
|
||||
s32 offset = (s32)(g_20SecIntervalFrac * 600.0f) % 12;
|
||||
f32 increment;
|
||||
|
||||
var8007f840++;
|
||||
|
@ -375,7 +375,7 @@ Gfx *bviewDrawFilmInterlace(Gfx *gdl, u32 colour, u32 alpha)
|
|||
s32 y;
|
||||
s32 viewwidth = viGetViewWidth();
|
||||
s32 viewleft = viGetViewLeft();
|
||||
s32 offset = (s32)(var80061630 * 600.0f) % 12;
|
||||
s32 offset = (s32)(g_20SecIntervalFrac * 600.0f) % 12;
|
||||
u32 stack;
|
||||
|
||||
var8007f840++;
|
||||
|
@ -18003,7 +18003,7 @@ Gfx *bviewDrawHorizonScanner(Gfx *gdl)
|
|||
tmplensheight = viewheight - 30;
|
||||
}
|
||||
|
||||
if (((s32)(var80061630 * 30.0f) & 1) == 1) {
|
||||
if (((s32)(g_20SecIntervalFrac * 30.0f) & 1) == 1) {
|
||||
sprintf(arrows, ">> ");
|
||||
} else {
|
||||
sprintf(arrows, " >>");
|
||||
|
@ -18022,7 +18022,7 @@ Gfx *bviewDrawHorizonScanner(Gfx *gdl)
|
|||
|
||||
// Prepare text buffers
|
||||
sprintf(directiontext, "%s %s:%03d", arrows, &directions[(turnangle + 22) / 45], turnangle);
|
||||
sprintf(hertztext, "%s %s%s%4.2fh", arrows, "", "", func0f006b54(4) * 4.6f + 917.4f);
|
||||
sprintf(hertztext, "%s %s%s%4.2fh", arrows, "", "", menuGetCosOscFrac(4) * 4.6f + 917.4f);
|
||||
|
||||
fovy = viGetFovY();
|
||||
|
||||
|
@ -18406,7 +18406,7 @@ glabel var7f1b04c8nb
|
|||
/* f14296c: afa30010 */ sw $v1,0x10($sp)
|
||||
/* f142970: 3c014080 */ lui $at,0x4080
|
||||
/* f142974: 44816000 */ mtc1 $at,$f12
|
||||
/* f142978: 0fc019fe */ jal func0f006b54
|
||||
/* f142978: 0fc019fe */ jal menuGetCosOscFrac
|
||||
/* f14297c: 00000000 */ sll $zero,$zero,0x0
|
||||
/* f142980: 3c017f1b */ lui $at,0x7f1b
|
||||
/* f142984: c42a04c4 */ lwc1 $f10,0x4c4($at)
|
||||
|
|
|
@ -75,7 +75,7 @@ s32 g_DyntexVerticesCount = 0;
|
|||
|
||||
void dyntexUpdateLinear(struct gfxvtx *vertices, struct dyntextype *type)
|
||||
{
|
||||
s16 tmp = (s32) (var80061634 * 10.0f * 4096.0f) % 4096;
|
||||
s16 tmp = (s32) (g_Lv80SecIntervalFrac * 10.0f * 4096.0f) % 4096;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < type->numvertices; i++) {
|
||||
|
@ -100,7 +100,7 @@ void dyntexUpdateReset(struct gfxvtx *vertices, struct dyntextype *type)
|
|||
|
||||
void dyntexUpdateMonitor(struct gfxvtx *vertices, struct dyntextype *type)
|
||||
{
|
||||
s16 tmp = (s32) (var80061634 * 4.0f * 4096.0f) % 4096;
|
||||
s16 tmp = (s32) (g_Lv80SecIntervalFrac * 4.0f * 4096.0f) % 4096;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < type->numvertices; i++) {
|
||||
|
@ -113,7 +113,7 @@ void dyntexUpdateMonitor(struct gfxvtx *vertices, struct dyntextype *type)
|
|||
|
||||
void dyntexUpdateOcean(struct gfxvtx *vertices, struct dyntextype *type)
|
||||
{
|
||||
f32 f24 = var80061634 * 5.0f;
|
||||
f32 f24 = g_Lv80SecIntervalFrac * 5.0f;
|
||||
f32 angle;
|
||||
s32 i;
|
||||
|
||||
|
@ -136,7 +136,7 @@ void dyntexUpdateOcean(struct gfxvtx *vertices, struct dyntextype *type)
|
|||
|
||||
void dyntexUpdateArrows(struct gfxvtx *vertices, struct dyntextype *type)
|
||||
{
|
||||
s32 tmp = ((s32) ((1.0f - var80061634) * 60.0f * 8.0f) % 8) * 256;
|
||||
s32 tmp = ((s32) ((1.0f - g_Lv80SecIntervalFrac) * 60.0f * 8.0f) % 8) * 256;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < type->numvertices; i++) {
|
||||
|
|
|
@ -1000,7 +1000,7 @@ s32 endscreenHandleCheatInfo(s32 operation, struct menuitem *item, union handler
|
|||
if (operation == MENUOP_GETCOLOUR
|
||||
&& ((g_Menus[g_MpPlayerNum].endscreen.cheatinfo & 0x200) || item->param == 5)) {
|
||||
// Timed cheat just got unlocked, and this item is the timed cheat name
|
||||
u32 weight = func0f006b08(40) * 255;
|
||||
u32 weight = menuGetSinOscFrac(40) * 255;
|
||||
|
||||
mainOverrideVariable("ctcol", &cheatcolour);
|
||||
|
||||
|
|
|
@ -10,8 +10,19 @@
|
|||
#include "data.h"
|
||||
#include "types.h"
|
||||
|
||||
f32 var80061630 = 0;
|
||||
f32 var80061634 = 0;
|
||||
/**
|
||||
* Increments from 0 to 1 over 20 seconds then snaps back to 0.
|
||||
*
|
||||
* The value is commonly used for menus, so it increments while paused.
|
||||
*/
|
||||
f32 g_20SecIntervalFrac = 0;
|
||||
|
||||
/**
|
||||
* Increments from 0 to 1 over 80 seconds then snaps back to 0.
|
||||
*
|
||||
* The value is paused when the game is paused.
|
||||
*/
|
||||
f32 g_Lv80SecIntervalFrac = 0;
|
||||
|
||||
/**
|
||||
* Blends two colours together.
|
||||
|
@ -29,22 +40,22 @@ u32 colourBlend(u32 a, u32 b, u32 aweight)
|
|||
| ((aweight * (a & 0xff) + bweight * (b & 0xff)) >> 8);
|
||||
}
|
||||
|
||||
void func0f0069dc(void)
|
||||
void menuTickTimers(void)
|
||||
{
|
||||
#if VERSION >= VERSION_PAL_BETA
|
||||
var80061630 = var80061630 + g_Vars.diffframe240freal / 4800.0f;
|
||||
g_20SecIntervalFrac = g_20SecIntervalFrac + g_Vars.diffframe240freal / 4800.0f;
|
||||
#else
|
||||
var80061630 = var80061630 + g_Vars.diffframe240f / 4800.0f;
|
||||
g_20SecIntervalFrac = g_20SecIntervalFrac + g_Vars.diffframe240f / 4800.0f;
|
||||
#endif
|
||||
|
||||
if (var80061630 > 1.0f) {
|
||||
var80061630 -= 1.0f;
|
||||
if (g_20SecIntervalFrac > 1.0f) {
|
||||
g_20SecIntervalFrac -= 1.0f;
|
||||
}
|
||||
|
||||
var80061634 = var80061634 + LVUPDATE240FREAL() / 4800.0f;
|
||||
g_Lv80SecIntervalFrac = g_Lv80SecIntervalFrac + LVUPDATE240FREAL() / 4800.0f;
|
||||
|
||||
if (var80061634 > 1.0f) {
|
||||
var80061634 -= 1.0f;
|
||||
if (g_Lv80SecIntervalFrac > 1.0f) {
|
||||
g_Lv80SecIntervalFrac -= 1.0f;
|
||||
}
|
||||
|
||||
#if PIRACYCHECKS
|
||||
|
@ -73,29 +84,62 @@ void func0f0069dc(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
f32 func0f006b08(f32 arg0)
|
||||
/**
|
||||
* Return a float that represents a frac on a sine wave, based on a global timer.
|
||||
*
|
||||
* A full oscillation goes from 0.5 -> 1 -> 0 -> 0.5.
|
||||
*
|
||||
* freq is the amount of oscillations per 20 seconds.
|
||||
*/
|
||||
f32 menuGetSinOscFrac(f32 freq)
|
||||
{
|
||||
return sinf((arg0 * var80061630 + arg0 * var80061630) * M_PI) * 0.5f + .5f;
|
||||
return sinf((freq * g_20SecIntervalFrac + freq * g_20SecIntervalFrac) * M_PI) / 2.0f + 0.5f;
|
||||
}
|
||||
|
||||
f32 func0f006b54(f32 arg0)
|
||||
/**
|
||||
* Return a float that represents a frac on a cosine wave, based on a global timer.
|
||||
*
|
||||
* A full oscillation goes from 1 -> 0 -> 1.
|
||||
*
|
||||
* freq is the amount of oscillations per 20 seconds.
|
||||
*/
|
||||
f32 menuGetCosOscFrac(f32 freq)
|
||||
{
|
||||
return cosf((arg0 * var80061630 + arg0 * var80061630) * M_PI) * 0.5f + .5f;
|
||||
return cosf((freq * g_20SecIntervalFrac + freq * g_20SecIntervalFrac) * M_PI) / 2.0f + 0.5f;
|
||||
}
|
||||
|
||||
f32 func0f006ba0(f32 arg0)
|
||||
/**
|
||||
* Return a float that represents a linear frac, based on a global timer.
|
||||
*
|
||||
* A full interval goes from 0 to 1 at a constant speed,
|
||||
* then snaps back to 0 for the next interval.
|
||||
*
|
||||
* freq is the amount of intervals per 20 seconds.
|
||||
*/
|
||||
f32 menuGetLinearIntervalFrac(f32 freq)
|
||||
{
|
||||
f32 tmp = var80061630 * arg0;
|
||||
f32 tmp = g_20SecIntervalFrac * freq;
|
||||
|
||||
tmp -= (s32)tmp;
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
f32 func0f006bd0(f32 arg0)
|
||||
/**
|
||||
* Return a float that oscillates between 0 and 1, with a pause at each end.
|
||||
*
|
||||
* frac 0.00 to 0.25 -> result will be a scale from 0 to 1
|
||||
* frac 0.25 to 0.50 -> result will be 1
|
||||
* frac 0.50 to 0.75 -> result will be a scale from 1 to 0
|
||||
* frac 0.75 to 1.00 -> result will be 0
|
||||
*
|
||||
* It's used on the Combat Simulator's character selection menu
|
||||
* to determine the camera's zoom.
|
||||
*/
|
||||
f32 menuGetLinearOscPauseFrac(f32 frac)
|
||||
{
|
||||
s32 ival = arg0 * 4.0f;
|
||||
f32 fval = arg0 * 4.0f - (f32)(ival / 4) * 4.0f;
|
||||
s32 ival = frac * 4.0f;
|
||||
f32 fval = frac * 4.0f - (f32)(ival / 4) * 4.0f;
|
||||
|
||||
if (fval < 1.0f) {
|
||||
return fval;
|
||||
|
|
|
@ -2444,7 +2444,7 @@ Gfx *textRenderProjected(Gfx *gdl, s32 *x, s32 *y, char *text, struct fontchar *
|
|||
|
||||
if (var8007fbd8) {
|
||||
#if VERSION >= VERSION_JPN_FINAL
|
||||
func0f006b08(40);
|
||||
menuGetSinOscFrac(40);
|
||||
newx = *x / g_ScaleX;
|
||||
newy = *y;
|
||||
tmpcolour = var800a463c;
|
||||
|
@ -2492,7 +2492,7 @@ Gfx *textRenderProjected(Gfx *gdl, s32 *x, s32 *y, char *text, struct fontchar *
|
|||
g_Blend.types = savedtypes;
|
||||
g_Blend.diagmode = savedmode;
|
||||
#else
|
||||
alpha = (1.0f - func0f006b08(40.0f)) * 100.0f + 150.0f;
|
||||
alpha = (1.0f - menuGetSinOscFrac(40.0f)) * 100.0f + 150.0f;
|
||||
newx = *x / g_ScaleX;
|
||||
newy = *y;
|
||||
tmpcolour = var800a463c;
|
||||
|
|
|
@ -3824,8 +3824,8 @@ s32 inventoryMenuDialog(s32 operation, struct menudialogdef *dialogdef, union ha
|
|||
if (operation == MENUOP_TICK) {
|
||||
if (g_Menus[g_MpPlayerNum].curdialog && g_Menus[g_MpPlayerNum].curdialog->definition == dialogdef) {
|
||||
g_Menus[g_MpPlayerNum].unk840.unk574 -= g_Vars.diffframe60;
|
||||
g_Menus[g_MpPlayerNum].unk840.unk54c = 18.849555969238f * var80061630;
|
||||
g_Menus[g_MpPlayerNum].unk840.unk524 = 18.849555969238f * var80061630;
|
||||
g_Menus[g_MpPlayerNum].unk840.unk54c = 18.849555969238f * g_20SecIntervalFrac;
|
||||
g_Menus[g_MpPlayerNum].unk840.unk524 = 18.849555969238f * g_20SecIntervalFrac;
|
||||
g_Menus[g_MpPlayerNum].unk840.unk528 = 0;
|
||||
g_Menus[g_MpPlayerNum].unk840.unk550 = 0;
|
||||
|
||||
|
|
|
@ -1904,7 +1904,7 @@ Gfx *menuRenderModels(Gfx *gdl, struct menu840 *thing, s32 arg2)
|
|||
|
||||
if (node) {
|
||||
struct modelrodata_position *rodata = &node->rodata->position;
|
||||
f32 f0 = func0f006bd0(thing->unk574 / TICKS(480.0f));
|
||||
f32 f0 = menuGetLinearOscPauseFrac(thing->unk574 / TICKS(480.0f));
|
||||
|
||||
sp2fc.f[0] = 0.0f;
|
||||
sp2fc.f[1] = 0.0f - (rodata->pos.f[1] / 7.6f * (1.0f - f0 * f0));
|
||||
|
@ -2283,7 +2283,7 @@ Gfx *menuRenderModels(Gfx *gdl, struct menu840 *thing, s32 arg2)
|
|||
Mtxf spe0;
|
||||
sp160 = model0001a524(node, 0);
|
||||
mtx4LoadIdentity(&sp120);
|
||||
mtx4LoadXRotation(func0f006b54(4), &sp120);
|
||||
mtx4LoadXRotation(menuGetCosOscFrac(4), &sp120);
|
||||
mtx4MultMtx4((Mtxf *)((u32)sp3b4 + sp160 * sizeof(Mtxf)), &sp120, &spe0);
|
||||
mtx4Copy(&spe0, (Mtxf *)((u32)sp3b4 + sp160 * sizeof(Mtxf)));
|
||||
}
|
||||
|
@ -2787,7 +2787,7 @@ glabel var7f1b2948
|
|||
/* f0f0978: 448d4000 */ mtc1 $t5,$f8
|
||||
/* f0f097c: 8c500004 */ lw $s0,0x4($v0)
|
||||
/* f0f0980: 468042a0 */ cvt.s.w $f10,$f8
|
||||
/* f0f0984: 0fc01a1d */ jal func0f006bd0
|
||||
/* f0f0984: 0fc01a1d */ jal menuGetLinearOscPauseFrac
|
||||
/* f0f0988: 46045303 */ div.s $f12,$f10,$f4
|
||||
/* f0f098c: 44806000 */ mtc1 $zero,$f12
|
||||
/* f0f0990: 3c013f80 */ lui $at,0x3f80
|
||||
|
@ -3732,7 +3732,7 @@ glabel var7f1b2948
|
|||
/* f0f175c: 27a40124 */ addiu $a0,$sp,0x124
|
||||
/* f0f1760: 3c014080 */ lui $at,0x4080
|
||||
/* f0f1764: 44816000 */ mtc1 $at,$f12
|
||||
/* f0f1768: 0fc019fe */ jal func0f006b54
|
||||
/* f0f1768: 0fc019fe */ jal menuGetCosOscFrac
|
||||
/* f0f176c: 00000000 */ sll $zero,$zero,0x0
|
||||
/* f0f1770: 46000306 */ mov.s $f12,$f0
|
||||
/* f0f1774: 0c005c9e */ jal mtx4LoadXRotation
|
||||
|
@ -4631,13 +4631,13 @@ Gfx *dialogRender(Gfx *gdl, struct menudialog *dialog, struct menu *menu, bool l
|
|||
// Draw chevrons
|
||||
u32 colour1;
|
||||
u32 colour;
|
||||
u32 weight = func0f006b08(10) * 255.0f;
|
||||
u32 weight = menuGetSinOscFrac(10) * 255.0f;
|
||||
|
||||
colour1 = MIXCOLOUR(dialog, unk00);
|
||||
colour = colourBlend(0xffffffff, colour1, weight);
|
||||
|
||||
gdl = menugfxDrawDialogChevron(gdl, dialogleft - 5, (dialogtop + dialogbottom) / 2, 9, 1, colour, colour, func0f006b08(20));
|
||||
gdl = menugfxDrawDialogChevron(gdl, dialogright + 5, (dialogtop + dialogbottom) / 2, 9, 3, colour, colour, func0f006b08(20));
|
||||
gdl = menugfxDrawDialogChevron(gdl, dialogleft - 5, (dialogtop + dialogbottom) / 2, 9, 1, colour, colour, menuGetSinOscFrac(20));
|
||||
gdl = menugfxDrawDialogChevron(gdl, dialogright + 5, (dialogtop + dialogbottom) / 2, 9, 3, colour, colour, menuGetSinOscFrac(20));
|
||||
|
||||
if (g_MenuData.root == MENUROOT_MAINMENU
|
||||
|| g_MenuData.root == MENUROOT_4MBFILEMGR
|
||||
|
@ -7965,7 +7965,7 @@ glabel var7f1b381cjf
|
|||
/* f0fd19c: 18400092 */ blez $v0,.JF0f0fd3e8
|
||||
/* f0fd1a0: 3c0141a0 */ lui $at,0x41a0
|
||||
/* f0fd1a4: 44816000 */ mtc1 $at,$f12
|
||||
/* f0fd1a8: 0fc01ae2 */ jal func0f006b08
|
||||
/* f0fd1a8: 0fc01ae2 */ jal menuGetSinOscFrac
|
||||
/* f0fd1ac: 00000000 */ nop
|
||||
/* f0fd1b0: 3c01437f */ lui $at,0x437f
|
||||
/* f0fd1b4: 44813000 */ mtc1 $at,$f6
|
||||
|
@ -8586,7 +8586,7 @@ Gfx *menuRender(Gfx *gdl)
|
|||
}
|
||||
|
||||
if (g_MenuData.playerjoinalpha[i] > 0) {
|
||||
u32 weight = func0f006b08(20) * 255.0f;
|
||||
u32 weight = menuGetSinOscFrac(20) * 255.0f;
|
||||
|
||||
// "Player %d: "
|
||||
sprintf(text, langGet(L_MPMENU_482), i + 1);
|
||||
|
|
|
@ -859,8 +859,8 @@ Gfx *menugfxRenderBgGreenHaze(Gfx *gdl, s32 x1, s32 y1, s32 x2, s32 y2)
|
|||
|
||||
for (i = 0; i < 2; i++) {
|
||||
s16 tmp = i * 256;
|
||||
f0 = var80061630;
|
||||
f26 = M_BADTAU * var80061630;
|
||||
f0 = g_20SecIntervalFrac;
|
||||
f26 = M_BADTAU * g_20SecIntervalFrac;
|
||||
|
||||
if (i == 1) {
|
||||
f26 = -f26;
|
||||
|
@ -893,14 +893,14 @@ Gfx *menugfxRenderBgGreenHaze(Gfx *gdl, s32 x1, s32 y1, s32 x2, s32 y2)
|
|||
s0 = cosf(f26) * f22;
|
||||
t5 = -sinf(f26) * f24;
|
||||
|
||||
vertices[i * 4 + 0].s = tmp - s2 - (s0);
|
||||
vertices[i * 4 + 0].t = tmp - s3 - (t5);
|
||||
vertices[i * 4 + 1].s = tmp + s2 - (s0);
|
||||
vertices[i * 4 + 1].t = tmp + s3 - (t5);
|
||||
vertices[i * 4 + 2].s = tmp + s2 + (s0);
|
||||
vertices[i * 4 + 2].t = tmp + s3 + (t5);
|
||||
vertices[i * 4 + 3].s = tmp - s2 + (s0);
|
||||
vertices[i * 4 + 3].t = tmp - s3 + (t5);
|
||||
vertices[i * 4 + 0].s = tmp - s2 - s0;
|
||||
vertices[i * 4 + 0].t = tmp - s3 - t5;
|
||||
vertices[i * 4 + 1].s = tmp + s2 - s0;
|
||||
vertices[i * 4 + 1].t = tmp + s3 - t5;
|
||||
vertices[i * 4 + 2].s = tmp + s2 + s0;
|
||||
vertices[i * 4 + 2].t = tmp + s3 + t5;
|
||||
vertices[i * 4 + 3].s = tmp - s2 + s0;
|
||||
vertices[i * 4 + 3].t = tmp - s3 + t5;
|
||||
}
|
||||
|
||||
vertices[0].colour = 0;
|
||||
|
@ -920,7 +920,7 @@ Gfx *menugfxRenderBgGreenHaze(Gfx *gdl, s32 x1, s32 y1, s32 x2, s32 y2)
|
|||
gDPSetColorArray(gdl++, osVirtualToPhysical(colours), 4);
|
||||
gDPSetVerticeArray(gdl++, osVirtualToPhysical(vertices), 8);
|
||||
|
||||
if (var80061630 > 0.5f) {
|
||||
if (g_20SecIntervalFrac > 0.5f) {
|
||||
gDPTri4(gdl++, 4, 5, 6, 6, 7, 4, 0, 1, 2, 2, 3, 0);
|
||||
} else {
|
||||
gDPTri4(gdl++, 0, 1, 2, 2, 3, 0, 4, 5, 6, 6, 7, 4);
|
||||
|
@ -1870,9 +1870,9 @@ Gfx *menugfxDrawShimmer(Gfx *gdl, s32 x1, s32 y1, s32 x2, s32 y2, u32 colour, bo
|
|||
minalpha = 0;
|
||||
|
||||
if (reverse) {
|
||||
v0 = 6.0f * var80061630 * 600.0f;
|
||||
v0 = 6.0f * g_20SecIntervalFrac * 600.0f;
|
||||
} else {
|
||||
v0 = (1.0f - var80061630) * 6.0f * 600.0f;
|
||||
v0 = (1.0f - g_20SecIntervalFrac) * 6.0f * 600.0f;
|
||||
}
|
||||
|
||||
if (y2 - y1 < x2 - x1) {
|
||||
|
@ -2191,7 +2191,7 @@ Gfx *menugfxRenderBgFailure(Gfx *gdl)
|
|||
u32 alpha1;
|
||||
u32 alpha2;
|
||||
|
||||
spb4 = M_TAU * var80061630;
|
||||
spb4 = M_TAU * g_20SecIntervalFrac;
|
||||
|
||||
var8009de98 = var8009de9c = 0;
|
||||
|
||||
|
@ -2245,8 +2245,8 @@ Gfx *menugfxRenderBgFailure(Gfx *gdl)
|
|||
s0 += 120;
|
||||
s7 += 120;
|
||||
|
||||
alpha1 = func0f006b54(4) * 127.0f;
|
||||
alpha2 = func0f006b54(4) * 55.0f;
|
||||
alpha1 = menuGetCosOscFrac(4) * 127.0f;
|
||||
alpha2 = menuGetCosOscFrac(4) * 55.0f;
|
||||
|
||||
gdl = menugfxDrawPlane(gdl, s6, s3, s2, s0, 0xffff0000 | alpha2, 0xffff0000 | alpha1, MENUPLANE_02);
|
||||
gdl = menugfxDrawPlane(gdl, s2, s0, s1, s7, 0xffff0000 | alpha1, 0xffff0000 | alpha2, MENUPLANE_03);
|
||||
|
@ -2270,8 +2270,8 @@ Gfx *menugfxRenderBgFailure(Gfx *gdl)
|
|||
s0 += 120;
|
||||
s7 += 120;
|
||||
|
||||
alpha1 = (1.0f - func0f006b54(4)) * 99.0f;
|
||||
alpha2 = (1.0f - func0f006b54(4)) * 33.0f;
|
||||
alpha1 = (1.0f - menuGetCosOscFrac(4)) * 99.0f;
|
||||
alpha2 = (1.0f - menuGetCosOscFrac(4)) * 33.0f;
|
||||
|
||||
gdl = menugfxDrawPlane(gdl, s6, s3, s2, s0, 0xffffff00 | alpha2, 0xffffff00 | alpha1, MENUPLANE_02);
|
||||
gdl = menugfxDrawPlane(gdl, s2, s0, s1, s7, 0xffffff00 | alpha1, 0xffffff00 | alpha2, MENUPLANE_03);
|
||||
|
@ -2301,8 +2301,8 @@ Gfx *menugfxRenderBgCone(Gfx *gdl)
|
|||
u32 colour;
|
||||
|
||||
// Cone 1
|
||||
baseangle = M_TAU * var80061630 * 2.0f;
|
||||
colourupper = (u32) (func0f006b08(1.0f) * 255.0f) << 16;
|
||||
baseangle = M_TAU * g_20SecIntervalFrac * 2.0f;
|
||||
colourupper = (u32) (menuGetSinOscFrac(1.0f) * 255.0f) << 16;
|
||||
|
||||
gdl = func0f0d4a3c(gdl, 0);
|
||||
|
||||
|
@ -2330,9 +2330,9 @@ Gfx *menugfxRenderBgCone(Gfx *gdl)
|
|||
}
|
||||
|
||||
// Cone 2
|
||||
colourupper = (u32) (255.0f - func0f006b54(1.0f) * 255.0f) << 16;
|
||||
colourupper = (u32) (255.0f - menuGetCosOscFrac(1.0f) * 255.0f) << 16;
|
||||
|
||||
baseangle = M_TAU * var80061630;
|
||||
baseangle = M_TAU * g_20SecIntervalFrac;
|
||||
|
||||
if (1);
|
||||
|
||||
|
@ -2424,7 +2424,7 @@ Gfx *menugfxRenderBgFailureCopy(Gfx *gdl)
|
|||
u32 alpha1;
|
||||
u32 alpha2;
|
||||
|
||||
spb4 = M_TAU * var80061630;
|
||||
spb4 = M_TAU * g_20SecIntervalFrac;
|
||||
|
||||
var8009de98 = var8009de9c = 0;
|
||||
|
||||
|
@ -2478,8 +2478,8 @@ Gfx *menugfxRenderBgFailureCopy(Gfx *gdl)
|
|||
s0 += 120;
|
||||
s7 += 120;
|
||||
|
||||
alpha1 = func0f006b54(4) * 127.0f;
|
||||
alpha2 = func0f006b54(4) * 55.0f;
|
||||
alpha1 = menuGetCosOscFrac(4) * 127.0f;
|
||||
alpha2 = menuGetCosOscFrac(4) * 55.0f;
|
||||
|
||||
gdl = menugfxDrawPlane(gdl, s6, s3, s2, s0, 0xffff0000 | alpha2, 0xffff0000 | alpha1, MENUPLANE_02);
|
||||
gdl = menugfxDrawPlane(gdl, s2, s0, s1, s7, 0xffff0000 | alpha1, 0xffff0000 | alpha2, MENUPLANE_03);
|
||||
|
@ -2503,8 +2503,8 @@ Gfx *menugfxRenderBgFailureCopy(Gfx *gdl)
|
|||
s0 += 120;
|
||||
s7 += 120;
|
||||
|
||||
alpha1 = (1.0f - func0f006b54(4)) * 99.0f;
|
||||
alpha2 = (1.0f - func0f006b54(4)) * 33.0f;
|
||||
alpha1 = (1.0f - menuGetCosOscFrac(4)) * 99.0f;
|
||||
alpha2 = (1.0f - menuGetCosOscFrac(4)) * 33.0f;
|
||||
|
||||
gdl = menugfxDrawPlane(gdl, s6, s3, s2, s0, 0xffffff00 | alpha2, 0xffffff00 | alpha1, MENUPLANE_02);
|
||||
gdl = menugfxDrawPlane(gdl, s2, s0, s1, s7, 0xffffff00 | alpha1, 0xffffff00 | alpha2, MENUPLANE_03);
|
||||
|
@ -2598,7 +2598,7 @@ Gfx *menugfxRenderBgSuccess(Gfx *gdl)
|
|||
}
|
||||
}
|
||||
|
||||
f0 = func0f006ba0(10.0f);
|
||||
f0 = menuGetLinearIntervalFrac(10.0f);
|
||||
|
||||
// Draw the two haze layers
|
||||
var8009de98 = 0;
|
||||
|
|
|
@ -453,7 +453,7 @@ Gfx *menuitemListRender(Gfx *gdl, struct menurendercontext *context)
|
|||
|
||||
if (optionindex == itemdata->unk02 && context->focused) {
|
||||
u32 spb0;
|
||||
u32 weight = func0f006b08(40.0f) * 255.0f;
|
||||
u32 weight = menuGetSinOscFrac(40.0f) * 255.0f;
|
||||
|
||||
spb0 = MIXCOLOUR(context->dialog, focused);
|
||||
colour = colourBlend(colour, colour & 0xff, 127);
|
||||
|
@ -853,14 +853,14 @@ Gfx *menuitemDropdownRender(Gfx *gdl, struct menurendercontext *context)
|
|||
if (context->focused != 0) {
|
||||
if ((context->focused & 2) != 0) {
|
||||
u32 tmpcolour;
|
||||
u32 weight = func0f006b08(20) * 255.0f; \
|
||||
u32 weight = menuGetSinOscFrac(20) * 255.0f; \
|
||||
tmpcolour = MIXCOLOUR(context->dialog, focused);
|
||||
|
||||
colour = colourBlend(colour, colour & 0xff, 0x7f);
|
||||
colour = colourBlend(colour, tmpcolour, weight);
|
||||
} else {
|
||||
u32 tmpcolour;
|
||||
u32 weight = func0f006b08(40) * 255.0f; \
|
||||
u32 weight = menuGetSinOscFrac(40) * 255.0f; \
|
||||
tmpcolour = MIXCOLOUR(context->dialog, focused);
|
||||
|
||||
colour = colourBlend(colour, colour & 0xff, 0x7f);
|
||||
|
@ -1137,7 +1137,7 @@ Gfx *menuitemKeyboardRender(Gfx *gdl, struct menurendercontext *context)
|
|||
gdl = text0f153780(gdl);
|
||||
|
||||
// Render cursor
|
||||
alpha = func0f006b08(40) * 255;
|
||||
alpha = menuGetSinOscFrac(40) * 255;
|
||||
|
||||
if (context->dialog->transitionfrac < 0) {
|
||||
cursorcolour = g_MenuColourPalettes[context->dialog->type].focused;
|
||||
|
@ -1201,7 +1201,7 @@ Gfx *menuitemKeyboardRender(Gfx *gdl, struct menurendercontext *context)
|
|||
|
||||
// If this button is the focused one, set highlighted colour
|
||||
if (col == data->col && row == data->row) {
|
||||
alpha = func0f006b08(40) * 255;
|
||||
alpha = menuGetSinOscFrac(40) * 255;
|
||||
|
||||
if (context->dialog->transitionfrac < 0) {
|
||||
tmpcolour = g_MenuColourPalettes[context->dialog->type].focused;
|
||||
|
@ -2767,7 +2767,7 @@ Gfx *menuitemSelectableRender(Gfx *gdl, struct menurendercontext *context)
|
|||
// use in the else branch. The lui is loading a value into $at for the
|
||||
// float to u32 conversion for weight.
|
||||
u32 colour2;
|
||||
u32 weight = func0f006b08(40) * 255; \
|
||||
u32 weight = menuGetSinOscFrac(40) * 255; \
|
||||
if (context->dialog->transitionfrac < 0) { \
|
||||
colour2 = g_MenuColourPalettes[context->dialog->type].focused; \
|
||||
} else { \
|
||||
|
@ -2917,7 +2917,7 @@ Gfx *menuitemSliderRender(Gfx *gdl, struct menurendercontext *context)
|
|||
if (context->focused) {
|
||||
if (context->focused & 2) {
|
||||
u32 tmpcolour;
|
||||
u32 weight = func0f006b08(40) * 255.0f;
|
||||
u32 weight = menuGetSinOscFrac(40) * 255.0f;
|
||||
|
||||
tmpcolour = MIXCOLOUR(context->dialog, focused);
|
||||
|
||||
|
@ -2941,14 +2941,14 @@ Gfx *menuitemSliderRender(Gfx *gdl, struct menurendercontext *context)
|
|||
if (context->focused != 0) {
|
||||
if (context->focused & 2) {
|
||||
u32 tmpcolour;
|
||||
u32 weight = func0f006b08(20) * 255.0f;
|
||||
u32 weight = menuGetSinOscFrac(20) * 255.0f;
|
||||
tmpcolour = MIXCOLOUR(context->dialog, focused);
|
||||
|
||||
colour = colourBlend(colour, colour & 0xff, 0x7f);
|
||||
colour = colourBlend(colour, tmpcolour, weight);
|
||||
} else {
|
||||
u32 tmpcolour;
|
||||
u32 weight = func0f006b08(40) * 255.0f;
|
||||
u32 weight = menuGetSinOscFrac(40) * 255.0f;
|
||||
tmpcolour = MIXCOLOUR(context->dialog, focused);
|
||||
|
||||
colour = colourBlend(colour, colour & 0xff, 0x7f);
|
||||
|
@ -3117,7 +3117,7 @@ Gfx *menuitemCarouselRender(Gfx *gdl, struct menurendercontext *context)
|
|||
|
||||
if (context->focused) {
|
||||
u32 colour1;
|
||||
u32 weight = func0f006b08(40) * 255;
|
||||
u32 weight = menuGetSinOscFrac(40) * 255;
|
||||
|
||||
if (context->dialog->transitionfrac < 0) {
|
||||
colour1 = g_MenuColourPalettes[context->dialog->type].focused;
|
||||
|
@ -3284,7 +3284,7 @@ Gfx *menuitemCheckboxRender(Gfx *gdl, struct menurendercontext *context)
|
|||
// use in the else branch. The lui is loading a value into $at for the
|
||||
// float to u32 conversion for weight.
|
||||
u32 focuscolour;
|
||||
u32 weight = func0f006b08(40) * 255; \
|
||||
u32 weight = menuGetSinOscFrac(40) * 255; \
|
||||
if (context->dialog->transitionfrac < 0) { \
|
||||
focuscolour = g_MenuColourPalettes[context->dialog->type].focused;
|
||||
} else {
|
||||
|
@ -4472,7 +4472,7 @@ Gfx *menuitemPlayerStatsRender(Gfx *gdl, struct menurendercontext *context)
|
|||
gdl = text0f153628(gdl);
|
||||
|
||||
// Write selected player's name
|
||||
weight = func0f006b08(40) * 255;
|
||||
weight = menuGetSinOscFrac(40) * 255;
|
||||
|
||||
if (context->dialog->transitionfrac < 0) {
|
||||
selectioncolour = g_MenuColourPalettes[context->dialog->type].focused;
|
||||
|
@ -5111,7 +5111,7 @@ Gfx *menuitemControllerRenderLines(Gfx *gdl, struct menurendercontext *context,
|
|||
#endif
|
||||
};
|
||||
|
||||
speed = (s32)(-var80061630 * 4.0f * 50.0f) % 4;
|
||||
speed = (s32)(-g_20SecIntervalFrac * 4.0f * 50.0f) % 4;
|
||||
alpha = alpha >> 1;
|
||||
|
||||
gDPPipeSync(gdl++);
|
||||
|
|
|
@ -68,7 +68,7 @@ void menuTick(void)
|
|||
g_ScaleX = g_ViRes == VIRES_HI ? 2 : 1;
|
||||
#endif
|
||||
|
||||
func0f0069dc();
|
||||
menuTickTimers();
|
||||
|
||||
if (g_MenuData.count) {
|
||||
// empty
|
||||
|
|
|
@ -627,7 +627,7 @@ s32 mpPlacementMenuHandler(s32 operation, struct menuitem *item, union handlerda
|
|||
{
|
||||
if (operation == MENUOP_GETCOLOUR) {
|
||||
if (g_PlayerConfigsArray[g_MpPlayerNum].base.placement == 0) { // winner
|
||||
data->label.colour2 = colourBlend(data->label.colour2, 0xffff00ff, func0f006b08(40) * 255);
|
||||
data->label.colour2 = colourBlend(data->label.colour2, 0xffff00ff, menuGetSinOscFrac(40) * 255);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -708,7 +708,7 @@ s32 mpPlayerTitleMenuHandler(s32 operation, struct menuitem *item, union handler
|
|||
{
|
||||
if (operation == MENUOP_GETCOLOUR) {
|
||||
if (g_PlayerConfigsArray[g_MpPlayerNum].title != g_PlayerConfigsArray[g_MpPlayerNum].newtitle) {
|
||||
data->label.colour2 = colourBlend(data->label.colour2, 0xffff00ff, func0f006b08(40) * 255);
|
||||
data->label.colour2 = colourBlend(data->label.colour2, 0xffff00ff, menuGetSinOscFrac(40) * 255);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1209,7 +1209,7 @@ Gfx *mpRenderModalText(Gfx *gdl)
|
|||
#endif
|
||||
|
||||
if (g_MpSetup.paused == MPPAUSEMODE_PAUSED) {
|
||||
s32 red = (s32) ((1.0f - var80061630) * 20.0f * 255.0f) % 255;
|
||||
s32 red = (s32) ((1.0f - g_20SecIntervalFrac) * 20.0f * 255.0f) % 255;
|
||||
s32 stack2;
|
||||
|
||||
gdl = text0f153628(gdl);
|
||||
|
|
|
@ -730,7 +730,7 @@ bool scenarioHighlightProp(struct prop *prop, s32 *colour)
|
|||
colour[0] = 0;
|
||||
colour[1] = 0xcd;
|
||||
colour[2] = 0xff;
|
||||
colour[3] = func0f006b08(20) * 255;
|
||||
colour[3] = menuGetSinOscFrac(20) * 255;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -769,7 +769,7 @@ bool scenarioHighlightProp(struct prop *prop, s32 *colour)
|
|||
colour[0] = tmp >> 24 & 0xff;
|
||||
colour[1] = tmp >> 16 & 0xff;
|
||||
colour[2] = tmp >> 8 & 0xff;
|
||||
colour[3] = pulse ? (s32)(func0f006b08(20) * 128) : 75;
|
||||
colour[3] = pulse ? (s32)(menuGetSinOscFrac(20) * 128) : 75;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -777,7 +777,7 @@ bool scenarioHighlightProp(struct prop *prop, s32 *colour)
|
|||
colour[0] = 0;
|
||||
colour[1] = 0xcd;
|
||||
colour[2] = 0xff;
|
||||
colour[3] = func0f006b08(20) * 205;
|
||||
colour[3] = menuGetSinOscFrac(20) * 205;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
790
src/game/nbomb.c
790
src/game/nbomb.c
|
@ -166,7 +166,7 @@ Gfx *func0f0073ac(Gfx *gdl, struct coord *pos, f32 arg2)
|
|||
|
||||
gDPSetRenderMode(gdl++, G_RM_ZB_XLU_SURF, G_RM_ZB_XLU_SURF2);
|
||||
|
||||
var8009cb00 = 2048.0f * var80061630;
|
||||
var8009cb00 = 2048.0f * g_20SecIntervalFrac;
|
||||
var8009cb04 = 0;
|
||||
|
||||
vertices = gfxAllocateVertices(6);
|
||||
|
@ -319,7 +319,7 @@ Gfx *nbombCreateGdl(void)
|
|||
index = 1;
|
||||
}
|
||||
|
||||
var8009cb00 = (s32)(var80061630 * 64.0f * 32.0f * 16.0f) % 0x800;
|
||||
var8009cb00 = (s32)(g_20SecIntervalFrac * 64.0f * 32.0f * 16.0f) % 0x800;
|
||||
|
||||
gdl = gdlstart = gfxAllocate(gdlsizes[index]);
|
||||
|
||||
|
@ -1273,7 +1273,7 @@ void nbombsTick(void)
|
|||
somevalue = 32767;
|
||||
|
||||
if (g_NbombAudioHandle) {
|
||||
f32 speed = func0f006b08(20) * 0.02f + 0.4f;
|
||||
f32 speed = menuGetSinOscFrac(20) * 0.02f + 0.4f;
|
||||
|
||||
if (youngest240 > TICKS(300)) {
|
||||
somevalue = (1.0f - (f32)(youngest240 - TICKS(300)) / (PAL ? 41.0f : 50.0f)) * 32767.0f;
|
||||
|
@ -1555,8 +1555,8 @@ glabel nbombRenderOverlay
|
|||
/* f00a600: 44816000 */ mtc1 $at,$f12
|
||||
/* f00a604: 3c014200 */ lui $at,0x4200
|
||||
/* f00a608: 44817000 */ mtc1 $at,$f14
|
||||
/* f00a60c: 3c018006 */ lui $at,%hi(var80061630)
|
||||
/* f00a610: c4201630 */ lwc1 $f0,%lo(var80061630)($at)
|
||||
/* f00a60c: 3c018006 */ lui $at,%hi(g_20SecIntervalFrac)
|
||||
/* f00a610: c4201630 */ lwc1 $f0,%lo(g_20SecIntervalFrac)($at)
|
||||
/* f00a614: c7a40074 */ lwc1 $f4,0x74($sp)
|
||||
/* f00a618: 00514821 */ addu $t1,$v0,$s1
|
||||
/* f00a61c: 46001202 */ mul.s $f8,$f2,$f0
|
||||
|
@ -1866,8 +1866,8 @@ glabel nbombRenderOverlay
|
|||
/* f00a600: 44816000 */ mtc1 $at,$f12
|
||||
/* f00a604: 3c014200 */ lui $at,0x4200
|
||||
/* f00a608: 44817000 */ mtc1 $at,$f14
|
||||
/* f00a60c: 3c018006 */ lui $at,%hi(var80061630)
|
||||
/* f00a610: c4201630 */ lwc1 $f0,%lo(var80061630)($at)
|
||||
/* f00a60c: 3c018006 */ lui $at,%hi(g_20SecIntervalFrac)
|
||||
/* f00a610: c4201630 */ lwc1 $f0,%lo(g_20SecIntervalFrac)($at)
|
||||
/* f00a614: c7a40074 */ lwc1 $f4,0x74($sp)
|
||||
/* f00a618: 00514821 */ addu $t1,$v0,$s1
|
||||
/* f00a61c: 46001202 */ mul.s $f8,$f2,$f0
|
||||
|
@ -2139,8 +2139,8 @@ Gfx *nbombRenderOverlay(Gfx *gdl)
|
|||
|
||||
sp50 = true;
|
||||
|
||||
s2 = (s32) (8.0f * var80061630 * 128.0f * 32.0f) % 2048;
|
||||
sp5e = ((s32)(campos.f[1] * 8.0f) % 2048) + (s32)(2.0f * var80061630 * 128.0f * 32.0f);
|
||||
s2 = (s32) (8.0f * g_20SecIntervalFrac * 128.0f * 32.0f) % 2048;
|
||||
sp5e = ((s32)(campos.f[1] * 8.0f) % 2048) + (s32)(2.0f * g_20SecIntervalFrac * 128.0f * 32.0f);
|
||||
|
||||
if (1);
|
||||
if (1);
|
||||
|
@ -2206,616 +2206,33 @@ Gfx *nbombRenderOverlay(Gfx *gdl)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if MATCHING
|
||||
GLOBAL_ASM(
|
||||
glabel gasRender
|
||||
.late_rodata
|
||||
glabel var7f1a7f44
|
||||
.word 0xc6557000
|
||||
glabel var7f1a7f48
|
||||
.word 0xc4b82000
|
||||
glabel var7f1a7f4c
|
||||
.word 0x3e4ccccd
|
||||
glabel var7f1a7f50
|
||||
.word 0x40c907a9
|
||||
glabel var7f1a7f54
|
||||
.word 0x453b8000
|
||||
.text
|
||||
/* f00a940: 27bdfef0 */ addiu $sp,$sp,-272
|
||||
/* f00a944: 3c013f80 */ lui $at,0x3f80
|
||||
/* f00a948: 44810000 */ mtc1 $at,$f0
|
||||
/* f00a94c: 3c0f7f1a */ lui $t7,%hi(var7f1a7e80)
|
||||
/* f00a950: afb10028 */ sw $s1,0x28($sp)
|
||||
/* f00a954: 3c06800a */ lui $a2,%hi(g_Vars)
|
||||
/* f00a958: 25ef7e80 */ addiu $t7,$t7,%lo(var7f1a7e80)
|
||||
/* f00a95c: 24c69fc0 */ addiu $a2,$a2,%lo(g_Vars)
|
||||
/* f00a960: afbf002c */ sw $ra,0x2c($sp)
|
||||
/* f00a964: afb00024 */ sw $s0,0x24($sp)
|
||||
/* f00a968: afa40110 */ sw $a0,0x110($sp)
|
||||
/* f00a96c: 00008825 */ or $s1,$zero,$zero
|
||||
/* f00a970: afa000ec */ sw $zero,0xec($sp)
|
||||
/* f00a974: 25ea0030 */ addiu $t2,$t7,0x30
|
||||
/* f00a978: 27ae00bc */ addiu $t6,$sp,0xbc
|
||||
/* f00a97c: e7a00108 */ swc1 $f0,0x108($sp)
|
||||
.L0f00a980:
|
||||
/* f00a980: 8de10000 */ lw $at,0x0($t7)
|
||||
/* f00a984: 25ef000c */ addiu $t7,$t7,0xc
|
||||
/* f00a988: 25ce000c */ addiu $t6,$t6,0xc
|
||||
/* f00a98c: adc1fff4 */ sw $at,-0xc($t6)
|
||||
/* f00a990: 8de1fff8 */ lw $at,-0x8($t7)
|
||||
/* f00a994: adc1fff8 */ sw $at,-0x8($t6)
|
||||
/* f00a998: 8de1fffc */ lw $at,-0x4($t7)
|
||||
/* f00a99c: 15eafff8 */ bne $t7,$t2,.L0f00a980
|
||||
/* f00a9a0: adc1fffc */ sw $at,-0x4($t6)
|
||||
/* f00a9a4: 8ccb04b4 */ lw $t3,0x4b4($a2)
|
||||
/* f00a9a8: 24010019 */ addiu $at,$zero,0x19
|
||||
/* f00a9ac: 556101e9 */ bnel $t3,$at,.L0f00b154
|
||||
/* f00a9b0: 8fad00ec */ lw $t5,0xec($sp)
|
||||
/* f00a9b4: 8cc30284 */ lw $v1,0x284($a2)
|
||||
/* f00a9b8: e7a000b8 */ swc1 $f0,0xb8($sp)
|
||||
/* f00a9bc: 27b000bc */ addiu $s0,$sp,0xbc
|
||||
/* f00a9c0: c4641bb0 */ lwc1 $f4,0x1bb0($v1)
|
||||
/* f00a9c4: e7a400fc */ swc1 $f4,0xfc($sp)
|
||||
/* f00a9c8: c4661bb4 */ lwc1 $f6,0x1bb4($v1)
|
||||
/* f00a9cc: e7a60100 */ swc1 $f6,0x100($sp)
|
||||
/* f00a9d0: c4681bb8 */ lwc1 $f8,0x1bb8($v1)
|
||||
/* f00a9d4: e7a80104 */ swc1 $f8,0x104($sp)
|
||||
/* f00a9d8: 27a400fc */ addiu $a0,$sp,0xfc
|
||||
.L0f00a9dc:
|
||||
/* f00a9dc: 0fc586b7 */ jal roomContainsCoord
|
||||
/* f00a9e0: 86050002 */ lh $a1,0x2($s0)
|
||||
/* f00a9e4: 10400002 */ beqz $v0,.L0f00a9f0
|
||||
/* f00a9e8: 26100004 */ addiu $s0,$s0,0x4
|
||||
/* f00a9ec: 24110001 */ addiu $s1,$zero,0x1
|
||||
.L0f00a9f0:
|
||||
/* f00a9f0: 27ac00ec */ addiu $t4,$sp,0xec
|
||||
/* f00a9f4: 560cfff9 */ bnel $s0,$t4,.L0f00a9dc
|
||||
/* f00a9f8: 27a400fc */ addiu $a0,$sp,0xfc
|
||||
/* f00a9fc: 16200025 */ bnez $s1,.L0f00aa94
|
||||
/* f00aa00: 27a400fc */ addiu $a0,$sp,0xfc
|
||||
/* f00aa04: 3c017f1a */ lui $at,%hi(var7f1a7f44)
|
||||
/* f00aa08: c4247f44 */ lwc1 $f4,%lo(var7f1a7f44)($at)
|
||||
/* f00aa0c: c7aa0104 */ lwc1 $f10,0x104($sp)
|
||||
/* f00aa10: 3c017f1a */ lui $at,%hi(var7f1a7f48)
|
||||
/* f00aa14: c4287f48 */ lwc1 $f8,%lo(var7f1a7f48)($at)
|
||||
/* f00aa18: c7a600fc */ lwc1 $f6,0xfc($sp)
|
||||
/* f00aa1c: 46045001 */ sub.s $f0,$f10,$f4
|
||||
/* f00aa20: 3c01c39a */ lui $at,0xc39a
|
||||
/* f00aa24: 44812000 */ mtc1 $at,$f4
|
||||
/* f00aa28: 46083081 */ sub.s $f2,$f6,$f8
|
||||
/* f00aa2c: c7aa0100 */ lwc1 $f10,0x100($sp)
|
||||
/* f00aa30: 46045381 */ sub.s $f14,$f10,$f4
|
||||
/* f00aa34: 46021182 */ mul.s $f6,$f2,$f2
|
||||
/* f00aa38: 00000000 */ nop
|
||||
/* f00aa3c: 460e7202 */ mul.s $f8,$f14,$f14
|
||||
/* f00aa40: 46083280 */ add.s $f10,$f6,$f8
|
||||
/* f00aa44: 46000102 */ mul.s $f4,$f0,$f0
|
||||
/* f00aa48: 0c012974 */ jal sqrtf
|
||||
/* f00aa4c: 460a2300 */ add.s $f12,$f4,$f10
|
||||
/* f00aa50: 3c0144a6 */ lui $at,0x44a6
|
||||
/* f00aa54: 44816000 */ mtc1 $at,$f12
|
||||
/* f00aa58: 00000000 */ nop
|
||||
/* f00aa5c: 460c003c */ c.lt.s $f0,$f12
|
||||
/* f00aa60: 00000000 */ nop
|
||||
/* f00aa64: 45020022 */ bc1fl .L0f00aaf0
|
||||
/* f00aa68: c7a40108 */ lwc1 $f4,0x108($sp)
|
||||
/* f00aa6c: 460c0203 */ div.s $f8,$f0,$f12
|
||||
/* f00aa70: 3c013f80 */ lui $at,0x3f80
|
||||
/* f00aa74: 44813000 */ mtc1 $at,$f6
|
||||
/* f00aa78: 24110001 */ addiu $s1,$zero,0x1
|
||||
/* f00aa7c: 24040032 */ addiu $a0,$zero,0x32
|
||||
/* f00aa80: 46083101 */ sub.s $f4,$f6,$f8
|
||||
/* f00aa84: 0fc02911 */ jal gasGetDoorFrac
|
||||
/* f00aa88: e7a40108 */ swc1 $f4,0x108($sp)
|
||||
/* f00aa8c: 10000017 */ b .L0f00aaec
|
||||
/* f00aa90: e7a000b8 */ swc1 $f0,0xb8($sp)
|
||||
.L0f00aa94:
|
||||
/* f00aa94: 0fc586b7 */ jal roomContainsCoord
|
||||
/* f00aa98: 24050091 */ addiu $a1,$zero,0x91
|
||||
/* f00aa9c: 50400014 */ beqzl $v0,.L0f00aaf0
|
||||
/* f00aaa0: c7a40108 */ lwc1 $f4,0x108($sp)
|
||||
/* f00aaa4: 0fc02911 */ jal gasGetDoorFrac
|
||||
/* f00aaa8: 24040030 */ addiu $a0,$zero,0x30
|
||||
/* f00aaac: 24040031 */ addiu $a0,$zero,0x31
|
||||
/* f00aab0: 0fc02911 */ jal gasGetDoorFrac
|
||||
/* f00aab4: e7a000b0 */ swc1 $f0,0xb0($sp)
|
||||
/* f00aab8: c7a200b0 */ lwc1 $f2,0xb0($sp)
|
||||
/* f00aabc: 3c017f1a */ lui $at,%hi(var7f1a7f4c)
|
||||
/* f00aac0: 4600103c */ c.lt.s $f2,$f0
|
||||
/* f00aac4: 00000000 */ nop
|
||||
/* f00aac8: 45020004 */ bc1fl .L0f00aadc
|
||||
/* f00aacc: e7a200b8 */ swc1 $f2,0xb8($sp)
|
||||
/* f00aad0: 10000002 */ b .L0f00aadc
|
||||
/* f00aad4: e7a000b8 */ swc1 $f0,0xb8($sp)
|
||||
/* f00aad8: e7a200b8 */ swc1 $f2,0xb8($sp)
|
||||
.L0f00aadc:
|
||||
/* f00aadc: c7aa00b8 */ lwc1 $f10,0xb8($sp)
|
||||
/* f00aae0: c4267f4c */ lwc1 $f6,%lo(var7f1a7f4c)($at)
|
||||
/* f00aae4: 46065200 */ add.s $f8,$f10,$f6
|
||||
/* f00aae8: e7a800b8 */ swc1 $f8,0xb8($sp)
|
||||
.L0f00aaec:
|
||||
/* f00aaec: c7a40108 */ lwc1 $f4,0x108($sp)
|
||||
.L0f00aaf0:
|
||||
/* f00aaf0: c7aa00b8 */ lwc1 $f10,0xb8($sp)
|
||||
/* f00aaf4: 3c0d800a */ lui $t5,%hi(g_Vars+0x2ac)
|
||||
/* f00aaf8: 460a2182 */ mul.s $f6,$f4,$f10
|
||||
/* f00aafc: 12200017 */ beqz $s1,.L0f00ab5c
|
||||
/* f00ab00: e7a60108 */ swc1 $f6,0x108($sp)
|
||||
/* f00ab04: 8dada26c */ lw $t5,%lo(g_Vars+0x2ac)($t5)
|
||||
/* f00ab08: 24010006 */ addiu $at,$zero,0x6
|
||||
/* f00ab0c: 3c02800a */ lui $v0,%hi(g_CutsceneCurAnimFrame60)
|
||||
/* f00ab10: 15a10012 */ bne $t5,$at,.L0f00ab5c
|
||||
/* f00ab14: 00000000 */ nop
|
||||
/* f00ab18: 8c42de10 */ lw $v0,%lo(g_CutsceneCurAnimFrame60)($v0)
|
||||
/* f00ab1c: 28410884 */ slti $at,$v0,0x884
|
||||
/* f00ab20: 50200004 */ beqzl $at,.L0f00ab34
|
||||
/* f00ab24: 28410a28 */ slti $at,$v0,0xa28
|
||||
/* f00ab28: 1000000c */ b .L0f00ab5c
|
||||
/* f00ab2c: 00008825 */ or $s1,$zero,$zero
|
||||
/* f00ab30: 28410a28 */ slti $at,$v0,0xa28
|
||||
.L0f00ab34:
|
||||
/* f00ab34: 10200009 */ beqz $at,.L0f00ab5c
|
||||
/* f00ab38: 2459f77c */ addiu $t9,$v0,-2180
|
||||
/* f00ab3c: 44994000 */ mtc1 $t9,$f8
|
||||
/* f00ab40: 3c0143d2 */ lui $at,0x43d2
|
||||
/* f00ab44: 44815000 */ mtc1 $at,$f10
|
||||
/* f00ab48: 46804120 */ cvt.s.w $f4,$f8
|
||||
/* f00ab4c: c7a60108 */ lwc1 $f6,0x108($sp)
|
||||
/* f00ab50: 460a2003 */ div.s $f0,$f4,$f10
|
||||
/* f00ab54: 46003202 */ mul.s $f8,$f6,$f0
|
||||
/* f00ab58: e7a80108 */ swc1 $f8,0x108($sp)
|
||||
.L0f00ab5c:
|
||||
/* f00ab5c: 5220017d */ beqzl $s1,.L0f00b154
|
||||
/* f00ab60: 8fad00ec */ lw $t5,0xec($sp)
|
||||
/* f00ab64: 0fc59e73 */ jal gfxAllocateColours
|
||||
/* f00ab68: 24040001 */ addiu $a0,$zero,0x1
|
||||
/* f00ab6c: afa200a4 */ sw $v0,0xa4($sp)
|
||||
/* f00ab70: 0fc59e59 */ jal gfxAllocateVertices
|
||||
/* f00ab74: 24040008 */ addiu $a0,$zero,0x8
|
||||
/* f00ab78: 0c002f40 */ jal viGetViewLeft
|
||||
/* f00ab7c: 00408025 */ or $s0,$v0,$zero
|
||||
/* f00ab80: 0002c080 */ sll $t8,$v0,0x2
|
||||
/* f00ab84: 0302c021 */ addu $t8,$t8,$v0
|
||||
/* f00ab88: 0018c040 */ sll $t8,$t8,0x1
|
||||
/* f00ab8c: 0c002f44 */ jal viGetViewTop
|
||||
/* f00ab90: a7b8009e */ sh $t8,0x9e($sp)
|
||||
/* f00ab94: 00025080 */ sll $t2,$v0,0x2
|
||||
/* f00ab98: 01425021 */ addu $t2,$t2,$v0
|
||||
/* f00ab9c: 000a5040 */ sll $t2,$t2,0x1
|
||||
/* f00aba0: 0c002f40 */ jal viGetViewLeft
|
||||
/* f00aba4: a7aa009c */ sh $t2,0x9c($sp)
|
||||
/* f00aba8: 00028c00 */ sll $s1,$v0,0x10
|
||||
/* f00abac: 00117c03 */ sra $t7,$s1,0x10
|
||||
/* f00abb0: 0c002f22 */ jal viGetViewWidth
|
||||
/* f00abb4: 01e08825 */ or $s1,$t7,$zero
|
||||
/* f00abb8: 00516021 */ addu $t4,$v0,$s1
|
||||
/* f00abbc: 000c6880 */ sll $t5,$t4,0x2
|
||||
/* f00abc0: 01ac6821 */ addu $t5,$t5,$t4
|
||||
/* f00abc4: 000d6840 */ sll $t5,$t5,0x1
|
||||
/* f00abc8: 0c002f44 */ jal viGetViewTop
|
||||
/* f00abcc: a7ad009a */ sh $t5,0x9a($sp)
|
||||
/* f00abd0: 00028c00 */ sll $s1,$v0,0x10
|
||||
/* f00abd4: 0011cc03 */ sra $t9,$s1,0x10
|
||||
/* f00abd8: 0c002f26 */ jal viGetViewHeight
|
||||
/* f00abdc: 03208825 */ or $s1,$t9,$zero
|
||||
/* f00abe0: 00517821 */ addu $t7,$v0,$s1
|
||||
/* f00abe4: 000f7080 */ sll $t6,$t7,0x2
|
||||
/* f00abe8: 3c03800a */ lui $v1,%hi(g_Vars+0x284)
|
||||
/* f00abec: 8c63a244 */ lw $v1,%lo(g_Vars+0x284)($v1)
|
||||
/* f00abf0: 01cf7021 */ addu $t6,$t6,$t7
|
||||
/* f00abf4: 000e7040 */ sll $t6,$t6,0x1
|
||||
/* f00abf8: a7ae0098 */ sh $t6,0x98($sp)
|
||||
/* f00abfc: c4641bb0 */ lwc1 $f4,0x1bb0($v1)
|
||||
/* f00ac00: c4601bbc */ lwc1 $f0,0x1bbc($v1)
|
||||
/* f00ac04: c46e1bc4 */ lwc1 $f14,0x1bc4($v1)
|
||||
/* f00ac08: e7a4008c */ swc1 $f4,0x8c($sp)
|
||||
/* f00ac0c: c46a1bb8 */ lwc1 $f10,0x1bb8($v1)
|
||||
/* f00ac10: 46000307 */ neg.s $f12,$f0
|
||||
/* f00ac14: 0fc259d4 */ jal atan2f
|
||||
/* f00ac18: e7aa0088 */ swc1 $f10,0x88($sp)
|
||||
/* f00ac1c: 3c017f1a */ lui $at,%hi(var7f1a7f50)
|
||||
/* f00ac20: c4267f50 */ lwc1 $f6,%lo(var7f1a7f50)($at)
|
||||
/* f00ac24: 3c014080 */ lui $at,0x4080
|
||||
/* f00ac28: 44816000 */ mtc1 $at,$f12
|
||||
/* f00ac2c: 46060203 */ div.s $f8,$f0,$f6
|
||||
/* f00ac30: 0fc01ac2 */ jal func0f006b08
|
||||
/* f00ac34: e7a80078 */ swc1 $f8,0x78($sp)
|
||||
/* f00ac38: c7a4008c */ lwc1 $f4,0x8c($sp)
|
||||
/* f00ac3c: c7aa0088 */ lwc1 $f10,0x88($sp)
|
||||
/* f00ac40: 3c014200 */ lui $at,0x4200
|
||||
/* f00ac44: 44819000 */ mtc1 $at,$f18
|
||||
/* f00ac48: 460a2180 */ add.s $f6,$f4,$f10
|
||||
/* f00ac4c: 3c017f1a */ lui $at,%hi(var7f1a7f54)
|
||||
/* f00ac50: c4287f54 */ lwc1 $f8,%lo(var7f1a7f54)($at)
|
||||
/* f00ac54: 3c013f00 */ lui $at,0x3f00
|
||||
/* f00ac58: 46083083 */ div.s $f2,$f6,$f8
|
||||
/* f00ac5c: 44814000 */ mtc1 $at,$f8
|
||||
/* f00ac60: 3c0140c0 */ lui $at,0x40c0
|
||||
/* f00ac64: 4600110d */ trunc.w.s $f4,$f2
|
||||
/* f00ac68: 440c2000 */ mfc1 $t4,$f4
|
||||
/* f00ac6c: 46080101 */ sub.s $f4,$f0,$f8
|
||||
/* f00ac70: c7a80078 */ lwc1 $f8,0x78($sp)
|
||||
/* f00ac74: 448c5000 */ mtc1 $t4,$f10
|
||||
/* f00ac78: 00000000 */ nop
|
||||
/* f00ac7c: 468051a0 */ cvt.s.w $f6,$f10
|
||||
/* f00ac80: 44815000 */ mtc1 $at,$f10
|
||||
/* f00ac84: 3c013fc0 */ lui $at,0x3fc0
|
||||
/* f00ac88: 46061401 */ sub.s $f16,$f2,$f6
|
||||
/* f00ac8c: 460a2183 */ div.s $f6,$f4,$f10
|
||||
/* f00ac90: 44815000 */ mtc1 $at,$f10
|
||||
/* f00ac94: 3c014300 */ lui $at,0x4300
|
||||
/* f00ac98: e7b00038 */ swc1 $f16,0x38($sp)
|
||||
/* f00ac9c: 46083100 */ add.s $f4,$f6,$f8
|
||||
/* f00aca0: 460a8182 */ mul.s $f6,$f16,$f10
|
||||
/* f00aca4: 44815000 */ mtc1 $at,$f10
|
||||
/* f00aca8: 3c014080 */ lui $at,0x4080
|
||||
/* f00acac: 44816000 */ mtc1 $at,$f12
|
||||
/* f00acb0: 46062380 */ add.s $f14,$f4,$f6
|
||||
/* f00acb4: 460e7200 */ add.s $f8,$f14,$f14
|
||||
/* f00acb8: 460a4102 */ mul.s $f4,$f8,$f10
|
||||
/* f00acbc: 00000000 */ nop
|
||||
/* f00acc0: 46122182 */ mul.s $f6,$f4,$f18
|
||||
/* f00acc4: 4600320d */ trunc.w.s $f8,$f6
|
||||
/* f00acc8: 44194000 */ mfc1 $t9,$f8
|
||||
/* f00accc: 00000000 */ nop
|
||||
/* f00acd0: 07210004 */ bgez $t9,.L0f00ace4
|
||||
/* f00acd4: 333807ff */ andi $t8,$t9,0x7ff
|
||||
/* f00acd8: 13000002 */ beqz $t8,.L0f00ace4
|
||||
/* f00acdc: 00000000 */ nop
|
||||
/* f00ace0: 2718f800 */ addiu $t8,$t8,-2048
|
||||
.L0f00ace4:
|
||||
/* f00ace4: 0fc01ad5 */ jal func0f006b54
|
||||
/* f00ace8: a7b80076 */ sh $t8,0x76($sp)
|
||||
/* f00acec: 3c014200 */ lui $at,0x4200
|
||||
/* f00acf0: 44819000 */ mtc1 $at,$f18
|
||||
/* f00acf4: 3c013f00 */ lui $at,0x3f00
|
||||
/* f00acf8: 44815000 */ mtc1 $at,$f10
|
||||
/* f00acfc: 3c01c110 */ lui $at,0xc110
|
||||
/* f00ad00: 44813000 */ mtc1 $at,$f6
|
||||
/* f00ad04: 460a0101 */ sub.s $f4,$f0,$f10
|
||||
/* f00ad08: c7aa0078 */ lwc1 $f10,0x78($sp)
|
||||
/* f00ad0c: c7b00038 */ lwc1 $f16,0x38($sp)
|
||||
/* f00ad10: 3c014300 */ lui $at,0x4300
|
||||
/* f00ad14: 46062203 */ div.s $f8,$f4,$f6
|
||||
/* f00ad18: 240c0001 */ addiu $t4,$zero,0x1
|
||||
/* f00ad1c: afac00ec */ sw $t4,0xec($sp)
|
||||
/* f00ad20: 8fa40110 */ lw $a0,0x110($sp)
|
||||
/* f00ad24: 460a4100 */ add.s $f4,$f8,$f10
|
||||
/* f00ad28: 44814000 */ mtc1 $at,$f8
|
||||
/* f00ad2c: 3c014100 */ lui $at,0x4100
|
||||
/* f00ad30: 46102380 */ add.s $f14,$f4,$f16
|
||||
/* f00ad34: 460e7180 */ add.s $f6,$f14,$f14
|
||||
/* f00ad38: 46083282 */ mul.s $f10,$f6,$f8
|
||||
/* f00ad3c: c7a80100 */ lwc1 $f8,0x100($sp)
|
||||
/* f00ad40: 46125102 */ mul.s $f4,$f10,$f18
|
||||
/* f00ad44: 44815000 */ mtc1 $at,$f10
|
||||
/* f00ad48: 3c018006 */ lui $at,%hi(var80061630)
|
||||
/* f00ad4c: c4221630 */ lwc1 $f2,%lo(var80061630)($at)
|
||||
/* f00ad50: 3c014300 */ lui $at,0x4300
|
||||
/* f00ad54: 46021300 */ add.s $f12,$f2,$f2
|
||||
/* f00ad58: 4600218d */ trunc.w.s $f6,$f4
|
||||
/* f00ad5c: 460a4102 */ mul.s $f4,$f8,$f10
|
||||
/* f00ad60: 44814000 */ mtc1 $at,$f8
|
||||
/* f00ad64: 3c014280 */ lui $at,0x4280
|
||||
/* f00ad68: 44113000 */ mfc1 $s1,$f6
|
||||
/* f00ad6c: 46086282 */ mul.s $f10,$f12,$f8
|
||||
/* f00ad70: 44814000 */ mtc1 $at,$f8
|
||||
/* f00ad74: 06210004 */ bgez $s1,.L0f00ad88
|
||||
/* f00ad78: 322f07ff */ andi $t7,$s1,0x7ff
|
||||
/* f00ad7c: 11e00002 */ beqz $t7,.L0f00ad88
|
||||
/* f00ad80: 00000000 */ nop
|
||||
/* f00ad84: 25eff800 */ addiu $t7,$t7,-2048
|
||||
.L0f00ad88:
|
||||
/* f00ad88: 4600218d */ trunc.w.s $f6,$f4
|
||||
/* f00ad8c: 46125102 */ mul.s $f4,$f10,$f18
|
||||
/* f00ad90: 000f7400 */ sll $t6,$t7,0x10
|
||||
/* f00ad94: 000e5c03 */ sra $t3,$t6,0x10
|
||||
/* f00ad98: 46086282 */ mul.s $f10,$f12,$f8
|
||||
/* f00ad9c: 44023000 */ mfc1 $v0,$f6
|
||||
/* f00ada0: 01608825 */ or $s1,$t3,$zero
|
||||
/* f00ada4: 04410004 */ bgez $v0,.L0f00adb8
|
||||
/* f00ada8: 304d07ff */ andi $t5,$v0,0x7ff
|
||||
/* f00adac: 11a00002 */ beqz $t5,.L0f00adb8
|
||||
/* f00adb0: 00000000 */ nop
|
||||
/* f00adb4: 25adf800 */ addiu $t5,$t5,-2048
|
||||
.L0f00adb8:
|
||||
/* f00adb8: 4600218d */ trunc.w.s $f6,$f4
|
||||
/* f00adbc: 46125102 */ mul.s $f4,$f10,$f18
|
||||
/* f00adc0: 01a01025 */ or $v0,$t5,$zero
|
||||
/* f00adc4: 440b3000 */ mfc1 $t3,$f6
|
||||
/* f00adc8: 00000000 */ nop
|
||||
/* f00adcc: 004b6821 */ addu $t5,$v0,$t3
|
||||
/* f00add0: 4600218d */ trunc.w.s $f6,$f4
|
||||
/* f00add4: a7ad00fa */ sh $t5,0xfa($sp)
|
||||
/* f00add8: 440f3000 */ mfc1 $t7,$f6
|
||||
/* f00addc: 00000000 */ nop
|
||||
/* f00ade0: 004f5821 */ addu $t3,$v0,$t7
|
||||
/* f00ade4: 0fc351e7 */ jal func0f0d479c
|
||||
/* f00ade8: a7ab0072 */ sh $t3,0x72($sp)
|
||||
/* f00adec: 3c05800b */ lui $a1,%hi(g_TexGeneralConfigs)
|
||||
/* f00adf0: 87a80072 */ lh $t0,0x72($sp)
|
||||
/* f00adf4: 87a900fa */ lh $t1,0xfa($sp)
|
||||
/* f00adf8: 8ca5b5a8 */ lw $a1,%lo(g_TexGeneralConfigs)($a1)
|
||||
/* f00adfc: 240d0002 */ addiu $t5,$zero,0x2
|
||||
/* f00ae00: 24190001 */ addiu $t9,$zero,0x1
|
||||
/* f00ae04: afa20110 */ sw $v0,0x110($sp)
|
||||
/* f00ae08: afb90014 */ sw $t9,0x14($sp)
|
||||
/* f00ae0c: afad0010 */ sw $t5,0x10($sp)
|
||||
/* f00ae10: 27a40110 */ addiu $a0,$sp,0x110
|
||||
/* f00ae14: 24060004 */ addiu $a2,$zero,0x4
|
||||
/* f00ae18: 24070001 */ addiu $a3,$zero,0x1
|
||||
/* f00ae1c: afa00018 */ sw $zero,0x18($sp)
|
||||
/* f00ae20: a7a80072 */ sh $t0,0x72($sp)
|
||||
/* f00ae24: a7a900fa */ sh $t1,0xfa($sp)
|
||||
/* f00ae28: 0fc2ce70 */ jal texSelect
|
||||
/* f00ae2c: 24a50048 */ addiu $a1,$a1,0x0048
|
||||
/* f00ae30: 8fb80110 */ lw $t8,0x110($sp)
|
||||
/* f00ae34: 87a80072 */ lh $t0,0x72($sp)
|
||||
/* f00ae38: 87a900fa */ lh $t1,0xfa($sp)
|
||||
/* f00ae3c: 270a0008 */ addiu $t2,$t8,0x8
|
||||
/* f00ae40: afaa0110 */ sw $t2,0x110($sp)
|
||||
/* f00ae44: 3c0fe700 */ lui $t7,0xe700
|
||||
/* f00ae48: af0f0000 */ sw $t7,0x0($t8)
|
||||
/* f00ae4c: af000004 */ sw $zero,0x4($t8)
|
||||
/* f00ae50: 8fae0110 */ lw $t6,0x110($sp)
|
||||
/* f00ae54: 3c0cba00 */ lui $t4,0xba00
|
||||
/* f00ae58: 358c1402 */ ori $t4,$t4,0x1402
|
||||
/* f00ae5c: 25cb0008 */ addiu $t3,$t6,0x8
|
||||
/* f00ae60: afab0110 */ sw $t3,0x110($sp)
|
||||
/* f00ae64: adc00004 */ sw $zero,0x4($t6)
|
||||
/* f00ae68: adcc0000 */ sw $t4,0x0($t6)
|
||||
/* f00ae6c: 8fad0110 */ lw $t5,0x110($sp)
|
||||
/* f00ae70: 3c18b900 */ lui $t8,0xb900
|
||||
/* f00ae74: 37180002 */ ori $t8,$t8,0x2
|
||||
/* f00ae78: 25b90008 */ addiu $t9,$t5,0x8
|
||||
/* f00ae7c: afb90110 */ sw $t9,0x110($sp)
|
||||
/* f00ae80: ada00004 */ sw $zero,0x4($t5)
|
||||
/* f00ae84: adb80000 */ sw $t8,0x0($t5)
|
||||
/* f00ae88: 8faa0110 */ lw $t2,0x110($sp)
|
||||
/* f00ae8c: 3c0efc12 */ lui $t6,0xfc12
|
||||
/* f00ae90: 3c0bff33 */ lui $t3,0xff33
|
||||
/* f00ae94: 254f0008 */ addiu $t7,$t2,0x8
|
||||
/* f00ae98: afaf0110 */ sw $t7,0x110($sp)
|
||||
/* f00ae9c: 356bffff */ ori $t3,$t3,0xffff
|
||||
/* f00aea0: 35ce1824 */ ori $t6,$t6,0x1824
|
||||
/* f00aea4: ad4e0000 */ sw $t6,0x0($t2)
|
||||
/* f00aea8: ad4b0004 */ sw $t3,0x4($t2)
|
||||
/* f00aeac: 8fac0110 */ lw $t4,0x110($sp)
|
||||
/* f00aeb0: 24183000 */ addiu $t8,$zero,0x3000
|
||||
/* f00aeb4: 3c19b600 */ lui $t9,0xb600
|
||||
/* f00aeb8: 258d0008 */ addiu $t5,$t4,0x8
|
||||
/* f00aebc: afad0110 */ sw $t5,0x110($sp)
|
||||
/* f00aec0: ad980004 */ sw $t8,0x4($t4)
|
||||
/* f00aec4: ad990000 */ sw $t9,0x0($t4)
|
||||
/* f00aec8: 8faa0110 */ lw $t2,0x110($sp)
|
||||
/* f00aecc: 87a7009c */ lh $a3,0x9c($sp)
|
||||
/* f00aed0: 87a6009e */ lh $a2,0x9e($sp)
|
||||
/* f00aed4: 254f0008 */ addiu $t7,$t2,0x8
|
||||
/* f00aed8: afaf0110 */ sw $t7,0x110($sp)
|
||||
/* f00aedc: 3c0eba00 */ lui $t6,0xba00
|
||||
/* f00aee0: 35ce0602 */ ori $t6,$t6,0x602
|
||||
/* f00aee4: 240b00c0 */ addiu $t3,$zero,0xc0
|
||||
/* f00aee8: ad4b0004 */ sw $t3,0x4($t2)
|
||||
/* f00aeec: ad4e0000 */ sw $t6,0x0($t2)
|
||||
/* f00aef0: 8fac0110 */ lw $t4,0x110($sp)
|
||||
/* f00aef4: 3c19ba00 */ lui $t9,0xba00
|
||||
/* f00aef8: 37390c02 */ ori $t9,$t9,0xc02
|
||||
/* f00aefc: 258d0008 */ addiu $t5,$t4,0x8
|
||||
/* f00af00: afad0110 */ sw $t5,0x110($sp)
|
||||
/* f00af04: 24182000 */ addiu $t8,$zero,0x2000
|
||||
/* f00af08: ad980004 */ sw $t8,0x4($t4)
|
||||
/* f00af0c: ad990000 */ sw $t9,0x0($t4)
|
||||
/* f00af10: 8faa0110 */ lw $t2,0x110($sp)
|
||||
/* f00af14: 3c0eb900 */ lui $t6,0xb900
|
||||
/* f00af18: 3c0b0050 */ lui $t3,0x50
|
||||
/* f00af1c: 254f0008 */ addiu $t7,$t2,0x8
|
||||
/* f00af20: afaf0110 */ sw $t7,0x110($sp)
|
||||
/* f00af24: 356b4340 */ ori $t3,$t3,0x4340
|
||||
/* f00af28: 35ce031d */ ori $t6,$t6,0x31d
|
||||
/* f00af2c: ad4e0000 */ sw $t6,0x0($t2)
|
||||
/* f00af30: ad4b0004 */ sw $t3,0x4($t2)
|
||||
/* f00af34: 8fac0110 */ lw $t4,0x110($sp)
|
||||
/* f00af38: 3c19ba00 */ lui $t9,0xba00
|
||||
/* f00af3c: 37391301 */ ori $t9,$t9,0x1301
|
||||
/* f00af40: 258d0008 */ addiu $t5,$t4,0x8
|
||||
/* f00af44: afad0110 */ sw $t5,0x110($sp)
|
||||
/* f00af48: 3c180008 */ lui $t8,0x8
|
||||
/* f00af4c: ad980004 */ sw $t8,0x4($t4)
|
||||
/* f00af50: ad990000 */ sw $t9,0x0($t4)
|
||||
/* f00af54: a6070002 */ sh $a3,0x2($s0)
|
||||
/* f00af58: a6060000 */ sh $a2,0x0($s0)
|
||||
/* f00af5c: 87a40098 */ lh $a0,0x98($sp)
|
||||
/* f00af60: 87a3009a */ lh $v1,0x9a($sp)
|
||||
/* f00af64: 2402fff6 */ addiu $v0,$zero,-10
|
||||
/* f00af68: a6020004 */ sh $v0,0x4($s0)
|
||||
/* f00af6c: a6020010 */ sh $v0,0x10($s0)
|
||||
/* f00af70: a602001c */ sh $v0,0x1c($s0)
|
||||
/* f00af74: a6020028 */ sh $v0,0x28($s0)
|
||||
/* f00af78: a6020034 */ sh $v0,0x34($s0)
|
||||
/* f00af7c: a6020040 */ sh $v0,0x40($s0)
|
||||
/* f00af80: a602004c */ sh $v0,0x4c($s0)
|
||||
/* f00af84: a6020058 */ sh $v0,0x58($s0)
|
||||
/* f00af88: a6110008 */ sh $s1,0x8($s0)
|
||||
/* f00af8c: a608000a */ sh $t0,0xa($s0)
|
||||
/* f00af90: a607000e */ sh $a3,0xe($s0)
|
||||
/* f00af94: a6070032 */ sh $a3,0x32($s0)
|
||||
/* f00af98: a607003e */ sh $a3,0x3e($s0)
|
||||
/* f00af9c: a6060024 */ sh $a2,0x24($s0)
|
||||
/* f00afa0: a6060030 */ sh $a2,0x30($s0)
|
||||
/* f00afa4: a6060054 */ sh $a2,0x54($s0)
|
||||
/* f00afa8: a604001a */ sh $a0,0x1a($s0)
|
||||
/* f00afac: a6040026 */ sh $a0,0x26($s0)
|
||||
/* f00afb0: a604004a */ sh $a0,0x4a($s0)
|
||||
/* f00afb4: a6040056 */ sh $a0,0x56($s0)
|
||||
/* f00afb8: a603000c */ sh $v1,0xc($s0)
|
||||
/* f00afbc: a6030018 */ sh $v1,0x18($s0)
|
||||
/* f00afc0: a603003c */ sh $v1,0x3c($s0)
|
||||
/* f00afc4: a6030048 */ sh $v1,0x48($s0)
|
||||
/* f00afc8: 87a40076 */ lh $a0,0x76($sp)
|
||||
/* f00afcc: 262203c0 */ addiu $v0,$s1,0x3c0
|
||||
/* f00afd0: 25030280 */ addiu $v1,$t0,0x280
|
||||
/* f00afd4: a6020014 */ sh $v0,0x14($s0)
|
||||
/* f00afd8: a6020020 */ sh $v0,0x20($s0)
|
||||
/* f00afdc: a6030022 */ sh $v1,0x22($s0)
|
||||
/* f00afe0: a611002c */ sh $s1,0x2c($s0)
|
||||
/* f00afe4: a603002e */ sh $v1,0x2e($s0)
|
||||
/* f00afe8: a2000007 */ sb $zero,0x7($s0)
|
||||
/* f00afec: a2000013 */ sb $zero,0x13($s0)
|
||||
/* f00aff0: a200001f */ sb $zero,0x1f($s0)
|
||||
/* f00aff4: a200002b */ sb $zero,0x2b($s0)
|
||||
/* f00aff8: a6080016 */ sh $t0,0x16($s0)
|
||||
/* f00affc: a609003a */ sh $t1,0x3a($s0)
|
||||
/* f00b000: a6040038 */ sh $a0,0x38($s0)
|
||||
/* f00b004: 8fa500a4 */ lw $a1,0xa4($sp)
|
||||
/* f00b008: 252301e0 */ addiu $v1,$t1,0x1e0
|
||||
/* f00b00c: 24820280 */ addiu $v0,$a0,0x280
|
||||
/* f00b010: a6020044 */ sh $v0,0x44($s0)
|
||||
/* f00b014: a6020050 */ sh $v0,0x50($s0)
|
||||
/* f00b018: a6030052 */ sh $v1,0x52($s0)
|
||||
/* f00b01c: a603005e */ sh $v1,0x5e($s0)
|
||||
/* f00b020: a2000037 */ sb $zero,0x37($s0)
|
||||
/* f00b024: a2000043 */ sb $zero,0x43($s0)
|
||||
/* f00b028: a200004f */ sb $zero,0x4f($s0)
|
||||
/* f00b02c: a200005b */ sb $zero,0x5b($s0)
|
||||
/* f00b030: 3c0142fe */ lui $at,0x42fe
|
||||
/* f00b034: a6090046 */ sh $t1,0x46($s0)
|
||||
/* f00b038: a604005c */ sh $a0,0x5c($s0)
|
||||
/* f00b03c: c7aa0108 */ lwc1 $f10,0x108($sp)
|
||||
/* f00b040: 44814000 */ mtc1 $at,$f8
|
||||
/* f00b044: 240f0001 */ addiu $t7,$zero,0x1
|
||||
/* f00b048: 3c0d0700 */ lui $t5,0x700
|
||||
/* f00b04c: 460a4102 */ mul.s $f4,$f8,$f10
|
||||
/* f00b050: 3c014f00 */ lui $at,0x4f00
|
||||
/* f00b054: 35ad0004 */ ori $t5,$t5,0x4
|
||||
/* f00b058: 444af800 */ cfc1 $t2,$31
|
||||
/* f00b05c: 44cff800 */ ctc1 $t7,$31
|
||||
/* f00b060: 00000000 */ nop
|
||||
/* f00b064: 460021a4 */ cvt.w.s $f6,$f4
|
||||
/* f00b068: 444ff800 */ cfc1 $t7,$31
|
||||
/* f00b06c: 00000000 */ nop
|
||||
/* f00b070: 31ef0078 */ andi $t7,$t7,0x78
|
||||
/* f00b074: 51e00013 */ beqzl $t7,.L0f00b0c4
|
||||
/* f00b078: 440f3000 */ mfc1 $t7,$f6
|
||||
/* f00b07c: 44813000 */ mtc1 $at,$f6
|
||||
/* f00b080: 240f0001 */ addiu $t7,$zero,0x1
|
||||
/* f00b084: 46062181 */ sub.s $f6,$f4,$f6
|
||||
/* f00b088: 44cff800 */ ctc1 $t7,$31
|
||||
/* f00b08c: 00000000 */ nop
|
||||
/* f00b090: 460031a4 */ cvt.w.s $f6,$f6
|
||||
/* f00b094: 444ff800 */ cfc1 $t7,$31
|
||||
/* f00b098: 00000000 */ nop
|
||||
/* f00b09c: 31ef0078 */ andi $t7,$t7,0x78
|
||||
/* f00b0a0: 15e00005 */ bnez $t7,.L0f00b0b8
|
||||
/* f00b0a4: 00000000 */ nop
|
||||
/* f00b0a8: 440f3000 */ mfc1 $t7,$f6
|
||||
/* f00b0ac: 3c018000 */ lui $at,0x8000
|
||||
/* f00b0b0: 10000007 */ b .L0f00b0d0
|
||||
/* f00b0b4: 01e17825 */ or $t7,$t7,$at
|
||||
.L0f00b0b8:
|
||||
/* f00b0b8: 10000005 */ b .L0f00b0d0
|
||||
/* f00b0bc: 240fffff */ addiu $t7,$zero,-1
|
||||
/* f00b0c0: 440f3000 */ mfc1 $t7,$f6
|
||||
.L0f00b0c4:
|
||||
/* f00b0c4: 00000000 */ nop
|
||||
/* f00b0c8: 05e0fffb */ bltz $t7,.L0f00b0b8
|
||||
/* f00b0cc: 00000000 */ nop
|
||||
.L0f00b0d0:
|
||||
/* f00b0d0: 3c013faf */ lui $at,0x3faf
|
||||
/* f00b0d4: 34211100 */ ori $at,$at,0x1100
|
||||
/* f00b0d8: 01e17025 */ or $t6,$t7,$at
|
||||
/* f00b0dc: acae0000 */ sw $t6,0x0($a1)
|
||||
/* f00b0e0: 8fb10110 */ lw $s1,0x110($sp)
|
||||
/* f00b0e4: 44caf800 */ ctc1 $t2,$31
|
||||
/* f00b0e8: 00a02025 */ or $a0,$a1,$zero
|
||||
/* f00b0ec: 262c0008 */ addiu $t4,$s1,0x8
|
||||
/* f00b0f0: afac0110 */ sw $t4,0x110($sp)
|
||||
/* f00b0f4: 0c012d20 */ jal osVirtualToPhysical
|
||||
/* f00b0f8: ae2d0000 */ sw $t5,0x0($s1)
|
||||
/* f00b0fc: ae220004 */ sw $v0,0x4($s1)
|
||||
/* f00b100: 8fb90110 */ lw $t9,0x110($sp)
|
||||
/* f00b104: 3c0a0470 */ lui $t2,0x470
|
||||
/* f00b108: 354a0060 */ ori $t2,$t2,0x60
|
||||
/* f00b10c: 27380008 */ addiu $t8,$t9,0x8
|
||||
/* f00b110: afb80110 */ sw $t8,0x110($sp)
|
||||
/* f00b114: af2a0000 */ sw $t2,0x0($t9)
|
||||
/* f00b118: 02002025 */ or $a0,$s0,$zero
|
||||
/* f00b11c: 0c012d20 */ jal osVirtualToPhysical
|
||||
/* f00b120: afb90044 */ sw $t9,0x44($sp)
|
||||
/* f00b124: 8fa50044 */ lw $a1,0x44($sp)
|
||||
/* f00b128: 3c0bb100 */ lui $t3,0xb100
|
||||
/* f00b12c: 3c0c7654 */ lui $t4,0x7654
|
||||
/* f00b130: aca20004 */ sw $v0,0x4($a1)
|
||||
/* f00b134: 8faf0110 */ lw $t7,0x110($sp)
|
||||
/* f00b138: 358c3210 */ ori $t4,$t4,0x3210
|
||||
/* f00b13c: 356b4602 */ ori $t3,$t3,0x4602
|
||||
/* f00b140: 25ee0008 */ addiu $t6,$t7,0x8
|
||||
/* f00b144: afae0110 */ sw $t6,0x110($sp)
|
||||
/* f00b148: adec0004 */ sw $t4,0x4($t7)
|
||||
/* f00b14c: adeb0000 */ sw $t3,0x0($t7)
|
||||
/* f00b150: 8fad00ec */ lw $t5,0xec($sp)
|
||||
.L0f00b154:
|
||||
/* f00b154: 51a00005 */ beqzl $t5,.L0f00b16c
|
||||
/* f00b158: 8fbf002c */ lw $ra,0x2c($sp)
|
||||
/* f00b15c: 0fc35272 */ jal func0f0d49c8
|
||||
/* f00b160: 8fa40110 */ lw $a0,0x110($sp)
|
||||
/* f00b164: afa20110 */ sw $v0,0x110($sp)
|
||||
/* f00b168: 8fbf002c */ lw $ra,0x2c($sp)
|
||||
.L0f00b16c:
|
||||
/* f00b16c: 8fa20110 */ lw $v0,0x110($sp)
|
||||
/* f00b170: 8fb00024 */ lw $s0,0x24($sp)
|
||||
/* f00b174: 8fb10028 */ lw $s1,0x28($sp)
|
||||
/* f00b178: 03e00008 */ jr $ra
|
||||
/* f00b17c: 27bd0110 */ addiu $sp,$sp,0x110
|
||||
);
|
||||
|
||||
const u32 var7f1a7e80[] = {0x00000092};
|
||||
const u32 var7f1a7e84[] = {0x00000093};
|
||||
const u32 var7f1a7e88[] = {0x00000094};
|
||||
const u32 var7f1a7e8c[] = {0x00000095};
|
||||
const u32 var7f1a7e90[] = {0x00000096};
|
||||
const u32 var7f1a7e94[] = {0x00000097};
|
||||
const u32 var7f1a7e98[] = {0x00000098};
|
||||
const u32 var7f1a7e9c[] = {0x00000099};
|
||||
const u32 var7f1a7ea0[] = {0x0000009a};
|
||||
const u32 var7f1a7ea4[] = {0x00000091};
|
||||
const u32 var7f1a7ea8[] = {0x0000008f};
|
||||
const u32 var7f1a7eac[] = {0x00000090};
|
||||
#else
|
||||
// Mismatch: Float calculations
|
||||
Gfx *gasRender(Gfx *gdl)
|
||||
{
|
||||
bool show = false;
|
||||
f32 alphafrac = 1.0f; // 108
|
||||
struct coord campos; // fc
|
||||
s16 spfa; // fa
|
||||
f32 alphafrac = 1.0f;
|
||||
struct coord campos;
|
||||
s16 layer2t;
|
||||
u32 alpha;
|
||||
s32 i;
|
||||
bool drawn = false; // ec
|
||||
const u32 gasrooms[] = { 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x91, 0x8f, 0x90 }; // bc
|
||||
f32 intensityfrac; // b8
|
||||
u32 stack;
|
||||
f32 frac1; // b0
|
||||
f32 frac2;
|
||||
bool drawn = false;
|
||||
|
||||
f32 distance;
|
||||
u32 *colours; // a4
|
||||
struct gfxvtx *vertices;
|
||||
s16 viewleft; // 9e
|
||||
s16 viewtop; // 9c
|
||||
s16 viewright; // 9a
|
||||
s16 viewbottom; // 98
|
||||
f32 fVar19;
|
||||
f32 camposx; // 8c
|
||||
f32 camposz; // 88
|
||||
f32 sp78; // 78
|
||||
s16 sp76; // 76
|
||||
s16 sp72; // 72
|
||||
s16 sVar15;
|
||||
s32 uVar21;
|
||||
f32 sp38; // 38
|
||||
const s32 gasrooms[] = {
|
||||
0x92,
|
||||
0x93,
|
||||
0x94,
|
||||
0x95,
|
||||
0x96,
|
||||
0x97,
|
||||
0x98,
|
||||
0x99,
|
||||
0x9a,
|
||||
0x91,
|
||||
0x8f,
|
||||
0x90,
|
||||
};
|
||||
|
||||
if (g_Vars.stagenum == STAGE_ESCAPE) {
|
||||
intensityfrac = 1.0f;
|
||||
f32 intensityfrac = 1.0f;
|
||||
|
||||
campos.x = g_Vars.currentplayer->cam_pos.x;
|
||||
campos.y = g_Vars.currentplayer->cam_pos.y;
|
||||
|
@ -2829,7 +2246,7 @@ Gfx *gasRender(Gfx *gdl)
|
|||
|
||||
if (!show) {
|
||||
// Outside of the gas rooms list - check distance to abitrary point
|
||||
distance = sqrtf(
|
||||
f32 distance = sqrtf(
|
||||
(campos.f[0] - -1473.0f) * (campos.f[0] - -1473.0f) +
|
||||
(campos.f[1] - -308.0f) * (campos.f[1] - -308.0f) +
|
||||
(campos.f[2] - -13660.0f) * (campos.f[2] - -13660.0f));
|
||||
|
@ -2842,8 +2259,8 @@ Gfx *gasRender(Gfx *gdl)
|
|||
} else {
|
||||
if (roomContainsCoord(&campos, 0x91)) {
|
||||
// In the small room between the first two doors
|
||||
frac1 = gasGetDoorFrac(0x30);
|
||||
frac2 = gasGetDoorFrac(0x31);
|
||||
f32 frac1 = gasGetDoorFrac(0x30);
|
||||
f32 frac2 = gasGetDoorFrac(0x31);
|
||||
|
||||
if (frac2 > frac1) {
|
||||
intensityfrac = frac2;
|
||||
|
@ -2860,54 +2277,49 @@ Gfx *gasRender(Gfx *gdl)
|
|||
if (show && g_Vars.tickmode == TICKMODE_CUTSCENE) {
|
||||
if (g_CutsceneCurAnimFrame60 < 2180) {
|
||||
show = false;
|
||||
} else {
|
||||
if (g_CutsceneCurAnimFrame60 < 2600) {
|
||||
alphafrac *= (g_CutsceneCurAnimFrame60 - 2180) / 420.0f;
|
||||
}
|
||||
} else if (g_CutsceneCurAnimFrame60 < 2600) {
|
||||
f32 tmp = (g_CutsceneCurAnimFrame60 - 2180) / 420.0f;
|
||||
alphafrac *= tmp;
|
||||
}
|
||||
}
|
||||
|
||||
if (show) {
|
||||
f32 lookx;
|
||||
f32 lookz;
|
||||
f32 tmp;
|
||||
f32 tmp2;
|
||||
s32 tmp3;
|
||||
colours = gfxAllocateColours(1);
|
||||
vertices = gfxAllocateVertices(8);
|
||||
viewleft = viGetViewLeft() * 10;
|
||||
viewtop = viGetViewTop() * 10;
|
||||
viewright = (viGetViewLeft() + viGetViewWidth()) * 10;
|
||||
viewbottom = (viGetViewTop() + viGetViewHeight()) * 10;
|
||||
u32 *colours = gfxAllocateColours(1);
|
||||
struct gfxvtx *vertices = gfxAllocateVertices(8);
|
||||
s16 viewleft = viGetViewLeft() * 10;
|
||||
s16 viewtop = viGetViewTop() * 10;
|
||||
s16 viewright = (s16) (viGetViewLeft() + viGetViewWidth()) * 10;
|
||||
s16 viewbottom = (s16) (viGetViewTop() + viGetViewHeight()) * 10;
|
||||
f32 lookx = g_Vars.currentplayer->cam_look.x;
|
||||
f32 lookz = g_Vars.currentplayer->cam_look.z;
|
||||
f32 camposx = g_Vars.currentplayer->cam_pos.x;
|
||||
f32 camposz = g_Vars.currentplayer->cam_pos.z;
|
||||
f32 f2;
|
||||
f32 f16;
|
||||
s32 stack;
|
||||
f32 sp78;
|
||||
s16 layer2s;
|
||||
s16 layer1s;
|
||||
s16 layer1t;
|
||||
|
||||
lookx = g_Vars.currentplayer->cam_look.x;
|
||||
lookz = g_Vars.currentplayer->cam_look.z;
|
||||
camposx = g_Vars.currentplayer->cam_pos.f[0];
|
||||
camposz = g_Vars.currentplayer->cam_pos.f[2];
|
||||
f2 = (camposx + camposz) / 3000.0f;
|
||||
f16 = (f2 - (s32) f2);
|
||||
|
||||
sp78 = atan2f(-lookx, lookz) / M_BADTAU;
|
||||
sp38 = (func0f006b08(4) - 0.5f) / 6.0f;
|
||||
|
||||
fVar19 = (camposx + camposz) / 3000.0f;
|
||||
fVar19 -= (s32)fVar19;
|
||||
tmp = sp38 + sp78 + fVar19 * 1.5f;
|
||||
layer2s = ((s32) (2.0f * ((menuGetSinOscFrac(4.0f) - 0.5f) / 6.0f + sp78 + f16 * 1.5f) * 128.0f * 32.0f) % 2048);
|
||||
layer1s = ((s32) (2.0f * ((menuGetCosOscFrac(4.0f) - 0.5f) / -9.0f + sp78 + f16) * 128.0f * 32.0f) % 2048);
|
||||
|
||||
sp76 = (s32)((2.0f * tmp) * 128.0f * 32.0f) % 0x800;
|
||||
layer2t = (s16) ((s32) (campos.y * 8.0f) % 2048) + (s16) (2.0f * g_20SecIntervalFrac * 128.0f * 32.0f);
|
||||
layer1t = (s16) ((s32) (campos.y * 8.0f) % 2048) + (s16) (2.0f * g_20SecIntervalFrac * 64.0f * 32.0f);
|
||||
|
||||
tmp2 = (func0f006b54(4) - 0.5f) / -9.0f;
|
||||
drawn = true;
|
||||
fVar19 = tmp2 + sp78 + sp38;
|
||||
|
||||
sVar15 = (s32)((2.0f * fVar19) * 128.0f * 32.0f) % 0x800;
|
||||
|
||||
tmp3 = (s32)(campos.y * 8.0f) % 0x800;
|
||||
|
||||
spfa = tmp3 + (s32)((2.0f * var80061630) * 128.0f * 32.0f);
|
||||
sp72 = tmp3 + (s32)((2.0f * var80061630) * 64.0f * 32.0f);
|
||||
|
||||
gdl = func0f0d479c(gdl);
|
||||
|
||||
texSelect(&gdl, &g_TexGeneralConfigs[6], 4, 1, 2, 1, NULL);
|
||||
if (1);
|
||||
|
||||
texSelect(&gdl, &g_TexGeneralConfigs[6], 4, 1, 2, true, NULL);
|
||||
|
||||
gDPPipeSync(gdl++);
|
||||
gDPSetCycleType(gdl++, G_CYC_1CYCLE);
|
||||
|
@ -2922,53 +2334,66 @@ Gfx *gasRender(Gfx *gdl)
|
|||
vertices[0].x = viewleft;
|
||||
vertices[0].y = viewtop;
|
||||
vertices[0].z = -10;
|
||||
vertices[1].z = -10;
|
||||
vertices[2].z = -10;
|
||||
vertices[3].z = -10;
|
||||
vertices[4].z = -10;
|
||||
vertices[5].z = -10;
|
||||
vertices[6].z = -10;
|
||||
vertices[7].z = -10;
|
||||
vertices[0].s = sVar15;
|
||||
vertices[0].t = sp72;
|
||||
vertices[1].y = viewtop;
|
||||
vertices[4].y = viewtop;
|
||||
vertices[5].y = viewtop;
|
||||
vertices[3].x = viewleft;
|
||||
vertices[4].x = viewleft;
|
||||
vertices[7].x = viewleft;
|
||||
vertices[2].y = viewbottom;
|
||||
vertices[3].y = viewbottom;
|
||||
vertices[6].y = viewbottom;
|
||||
vertices[7].y = viewbottom;
|
||||
|
||||
vertices[1].x = viewright;
|
||||
vertices[1].y = viewtop;
|
||||
vertices[1].z = -10;
|
||||
|
||||
vertices[2].x = viewright;
|
||||
vertices[2].y = viewbottom;
|
||||
vertices[2].z = -10;
|
||||
|
||||
vertices[3].x = viewleft;
|
||||
vertices[3].y = viewbottom;
|
||||
vertices[3].z = -10;
|
||||
|
||||
vertices[4].x = viewleft;
|
||||
vertices[4].y = viewtop;
|
||||
vertices[4].z = -10;
|
||||
|
||||
vertices[5].x = viewright;
|
||||
vertices[5].y = viewtop;
|
||||
vertices[5].z = -10;
|
||||
|
||||
vertices[6].x = viewright;
|
||||
vertices[1].s = sVar15 + 960;
|
||||
vertices[2].s = sVar15 + 960;
|
||||
vertices[2].t = sp72 + 640;
|
||||
vertices[3].s = sVar15;
|
||||
vertices[3].t = sp72 + 640;
|
||||
vertices[6].y = viewbottom;
|
||||
vertices[6].z = -10;
|
||||
|
||||
vertices[7].x = viewleft;
|
||||
vertices[7].y = viewbottom;
|
||||
vertices[7].z = -10;
|
||||
|
||||
vertices[0].s = layer1s;
|
||||
vertices[0].t = layer1t;
|
||||
vertices[1].s = layer1s + 960;
|
||||
vertices[1].t = layer1t;
|
||||
vertices[2].s = layer1s + 960;
|
||||
vertices[2].t = layer1t + 640;
|
||||
vertices[3].s = layer1s;
|
||||
vertices[3].t = layer1t + 640;
|
||||
|
||||
vertices[0].colour = 0;
|
||||
vertices[1].colour = 0;
|
||||
vertices[2].colour = 0;
|
||||
vertices[3].colour = 0;
|
||||
vertices[1].t = sp72;
|
||||
vertices[4].t = spfa;
|
||||
vertices[4].s = sp76;
|
||||
vertices[5].s = sp76 + 640;
|
||||
vertices[6].s = sp76 + 640;
|
||||
vertices[6].t = spfa + 480;
|
||||
vertices[7].t = spfa + 480;
|
||||
|
||||
vertices[4].s = layer2s;
|
||||
vertices[4].t = layer2t;
|
||||
vertices[5].s = layer2s + 640;
|
||||
vertices[5].t = layer2t;
|
||||
vertices[6].s = layer2s + 640;
|
||||
vertices[6].t = layer2t + 480;
|
||||
vertices[7].s = layer2s;
|
||||
vertices[7].t = layer2t + 480;
|
||||
|
||||
vertices[4].colour = 0;
|
||||
vertices[5].colour = 0;
|
||||
vertices[6].colour = 0;
|
||||
vertices[7].colour = 0;
|
||||
vertices[5].t = spfa;
|
||||
vertices[7].s = sp76;
|
||||
|
||||
colours[0] = 0x3faf1100 | (u32)(alphafrac * 127.0f);
|
||||
alpha = 127.0f * alphafrac;
|
||||
|
||||
colours[0] = 0x3faf1100 | alpha;
|
||||
|
||||
gDPSetColorArray(gdl++, osVirtualToPhysical(colours), 1);
|
||||
gDPSetVerticeArray(gdl++, osVirtualToPhysical(vertices), 8);
|
||||
|
@ -2983,4 +2408,3 @@ Gfx *gasRender(Gfx *gdl)
|
|||
|
||||
return gdl;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -329,15 +329,15 @@ Gfx *menugfxDrawPlane(Gfx *gdl, s32 x1, s32 y1, s32 x2, s32 y2, u32 colour1, u32
|
|||
vertices[3].z = -10 - a1;
|
||||
|
||||
if (type == MENUPLANE_10) {
|
||||
t1 = var80061630 * sp34 * 64.0f * 32.0f;
|
||||
t1 = g_20SecIntervalFrac * sp34 * 64.0f * 32.0f;
|
||||
} else {
|
||||
t1 = (var80061630 - 0.5f) * sp34 * 64.0f * 32.0f;
|
||||
t1 = (g_20SecIntervalFrac - 0.5f) * sp34 * 64.0f * 32.0f;
|
||||
}
|
||||
|
||||
if (type == MENUPLANE_10) {
|
||||
a1_2 = (var80061630 - 0.5f) * sp30 * 64.0f * 32.0f;
|
||||
a1_2 = (g_20SecIntervalFrac - 0.5f) * sp30 * 64.0f * 32.0f;
|
||||
} else {
|
||||
a1_2 = var80061630 * sp30 * 64.0f * 32.0f;
|
||||
a1_2 = g_20SecIntervalFrac * sp30 * 64.0f * 32.0f;
|
||||
}
|
||||
|
||||
vertices[0].s = sp2e + t1;
|
||||
|
|
|
@ -4542,7 +4542,7 @@ Gfx *sky0f126c3c(Gfx *gdl, f32 x, f32 y, f32 z, f32 arg4, f32 arg5)
|
|||
*/
|
||||
Gfx *sky0f126de8(Gfx *gdl)
|
||||
{
|
||||
f32 sp154 = var80061630 * M_BADTAU;
|
||||
f32 sp154 = g_20SecIntervalFrac * M_BADTAU;
|
||||
s32 i;
|
||||
f32 f20 = 0.0f;
|
||||
f32 f20_2;
|
||||
|
|
|
@ -224,10 +224,10 @@ Gfx *starsRender(Gfx *gdl)
|
|||
isddtower = true;
|
||||
}
|
||||
|
||||
colours[0] = colourBlend(0xffffff7f, 0x7777777f, func0f006b08(2) * 255);
|
||||
colours[1] = colourBlend(0x0000aa7f, 0x2222ff7f, func0f006b08(4) * 255);
|
||||
colours[2] = colourBlend(0x0000ff7f, 0x5555ff7f, func0f006b54(2) * 255);
|
||||
colours[3] = colourBlend(0xaaaaff7f, 0x7777ff7f, func0f006b54(4) * 255);
|
||||
colours[0] = colourBlend(0xffffff7f, 0x7777777f, menuGetSinOscFrac(2) * 255);
|
||||
colours[1] = colourBlend(0x0000aa7f, 0x2222ff7f, menuGetSinOscFrac(4) * 255);
|
||||
colours[2] = colourBlend(0x0000ff7f, 0x5555ff7f, menuGetCosOscFrac(2) * 255);
|
||||
colours[3] = colourBlend(0xaaaaff7f, 0x7777ff7f, menuGetCosOscFrac(4) * 255);
|
||||
|
||||
if (isddtower) {
|
||||
for (i = 0; i < 3; i++) {
|
||||
|
|
|
@ -8037,7 +8037,7 @@ Gfx *titleRenderRarePresents(Gfx *gdl)
|
|||
g_TitleAudioHandle = NULL;
|
||||
}
|
||||
|
||||
if (((s32)(var80061630 * 80.0f) % 2) == 0) {
|
||||
if (((s32)(g_20SecIntervalFrac * 80.0f) % 2) == 0) {
|
||||
u32 colour = (colourcomponent << 8) | 0x7f7fffff | (colourcomponent << 16);
|
||||
gdl = text0f153a34(gdl, x + 2, y, x + 12, y + 20, colour);
|
||||
}
|
||||
|
|
|
@ -230,8 +230,8 @@ s32 frTrainingInfoMenuDialog(s32 operation, struct menudialogdef *dialogdef, uni
|
|||
case MENUOP_TICK:
|
||||
if (g_Menus[g_MpPlayerNum].curdialog && g_Menus[g_MpPlayerNum].curdialog->definition == dialogdef) {
|
||||
g_Menus[g_MpPlayerNum].unk840.unk574 -= g_Vars.diffframe60;
|
||||
g_Menus[g_MpPlayerNum].unk840.unk54c = 18.849555969238f * var80061630;
|
||||
g_Menus[g_MpPlayerNum].unk840.unk524 = 18.849555969238f * var80061630;
|
||||
g_Menus[g_MpPlayerNum].unk840.unk54c = 18.849555969238f * g_20SecIntervalFrac;
|
||||
g_Menus[g_MpPlayerNum].unk840.unk524 = 18.849555969238f * g_20SecIntervalFrac;
|
||||
g_Menus[g_MpPlayerNum].unk840.unk528 = 0;
|
||||
g_Menus[g_MpPlayerNum].unk840.unk550 = 0;
|
||||
}
|
||||
|
@ -1935,8 +1935,8 @@ s32 dtTrainingDetailsMenuDialog(s32 operation, struct menudialogdef *dialogdef,
|
|||
g_Menus[g_MpPlayerNum].unk840.unk574 = TICKS(120);
|
||||
}
|
||||
|
||||
g_Menus[g_MpPlayerNum].unk840.unk54c = 18.849555969238f * var80061630;
|
||||
g_Menus[g_MpPlayerNum].unk840.unk524 = 18.849555969238f * var80061630;
|
||||
g_Menus[g_MpPlayerNum].unk840.unk54c = 18.849555969238f * g_20SecIntervalFrac;
|
||||
g_Menus[g_MpPlayerNum].unk840.unk524 = 18.849555969238f * g_20SecIntervalFrac;
|
||||
g_Menus[g_MpPlayerNum].unk840.unk550 = 0;
|
||||
g_Menus[g_MpPlayerNum].unk840.unk528 = 0;
|
||||
}
|
||||
|
|
|
@ -105,8 +105,8 @@ extern char udigs[];
|
|||
extern Gfx var80061360[];
|
||||
extern Gfx var80061380[];
|
||||
extern Gfx var800613a0[];
|
||||
extern f32 var80061630;
|
||||
extern f32 var80061634;
|
||||
extern f32 g_20SecIntervalFrac;
|
||||
extern f32 g_Lv80SecIntervalFrac;
|
||||
extern bool g_NbombsActive;
|
||||
extern s32 g_WeatherActive;
|
||||
extern u32 var80062410;
|
||||
|
|
|
@ -5,10 +5,10 @@
|
|||
#include "types.h"
|
||||
|
||||
u32 colourBlend(u32 a, u32 b, u32 weight);
|
||||
void func0f0069dc(void);
|
||||
f32 func0f006b08(f32 arg0);
|
||||
f32 func0f006b54(f32 arg0);
|
||||
f32 func0f006ba0(f32 arg0);
|
||||
f32 func0f006bd0(f32 arg0);
|
||||
void menuTickTimers(void);
|
||||
f32 menuGetSinOscFrac(f32 freq);
|
||||
f32 menuGetCosOscFrac(f32 freq);
|
||||
f32 menuGetLinearIntervalFrac(f32 freq);
|
||||
f32 menuGetLinearOscPauseFrac(f32 frac);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -117,7 +117,7 @@ struct g_vars {
|
|||
/*000040*/ s32 diffframe240;
|
||||
/*000044*/ f32 lvupdate240f;
|
||||
/*000048*/ f32 diffframe240f;
|
||||
/*00004c*/ f32 lvupdate240freal; // actually a 60 value?
|
||||
/*00004c*/ f32 lvupdate240freal; // actually a 60 value
|
||||
/*000050*/ f32 lvupdate240frealprev;
|
||||
/*000054*/ s32 lastframe240;
|
||||
/*000058*/ s32 thisframe240;
|
||||
|
|
|
@ -165,6 +165,6 @@ void piracy_patch(void)
|
|||
patch(algo08, "chrConsiderGrenadeThrow", "bgReset");
|
||||
patch(algo09, "bgunTickGunLoad", "tagsReset");
|
||||
patch(algo10, "explosionAlertChrs", "glassDestroy");
|
||||
patch(algo11, "func0f0069dc", "mtxGetObfuscatedRomBase");
|
||||
patch(algo12, "func0f15c920", "func0f0069dc");
|
||||
patch(algo11, "menuTickTimers", "mtxGetObfuscatedRomBase");
|
||||
patch(algo12, "func0f15c920", "menuTickTimers");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue