Merge branch 'TheOnlyZac:main' into slylilly

This commit is contained in:
lillyflower648 2024-09-09 18:37:22 -04:00 committed by GitHub
commit d614bb706e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 95 additions and 5 deletions

View File

@ -77,6 +77,10 @@ snd_SendIOPCommandNoWait = 0x11e8c8; // type:func
// P2/alo.c
////////////////////////////////////////////////////////////////
InitAlo__FP3ALO = 0x123ED0; // type:func
SnipAloObjects__FP3ALOiP4SNIP = 0x124DF8; // type:func
UpdateAlo__FP3ALOf = 0x124FC0; // type:func
LoadAloFromBrx__FP3ALOP18CBinaryInputStream = 0x1289C0; // type:func
SetAloTargetHitTest__FP3ALOi = 0x12AA28; // type:func
////////////////////////////////////////////////////////////////
// P2/binoc.c
@ -351,6 +355,8 @@ CollectLifetkn__FP7LIFETKN = 0x148FF0; // type:func
FUN_00149168 = 0x149168; // type:func
break_bottle = 0x149190; // type:func
s_asnipDprize = 0x2619A0; // size:0x3c
////////////////////////////////////////////////////////////////
// P2/difficulty.c
////////////////////////////////////////////////////////////////
@ -789,7 +795,7 @@ GRandInRange__Fff = 0x1EAAE0; // type:func
GRandGaussian = 0x1EAB48; // type:func
FFloatsNear__Ffff = 0x1EAC68; // type:func
CSolveQuadratic = 0x1EACA0; // type:func
PrescaleClq = 0x1EAD30; // type:func
PrescaleClq__FP3CLQffT0 = 0x1EAD30; // type:func
CalculateSinCos__FfPfT1 = 0x1EAD88; // type:func
GTrunc = 0x1EAE78; // type:func
GTrunc1 = 0x1EAF28; // type:func

View File

@ -8,6 +8,9 @@
#include <lo.h>
#include <dl.h>
// Forward
struct CBinaryInputStream;
struct FICG
{
uchar grficSweep;
@ -17,6 +20,16 @@ struct FICG
uchar grficShock;
};
/**
* @brief Unknown
*/
struct SNIP
{
int grfsnip;
OID oid;
int ib;
};
/**
* @brief "Lightweight"
*
@ -56,4 +69,27 @@ struct ALO : public LO
*/
void InitAlo(ALO *palo);
/**
* @brief unknown
*
*/
void SnipAloObjects(ALO *palo, int csnip, SNIP *asnip);
/**
* @brief Updates an ALO
*
* @param palo ALO to initialize
*/
void UpdateAlo(ALO *palo, float dt);
/**
* @brief unknown
*/
void LoadAloFromBrx(ALO *palo, CBinaryInputStream *pbis);
/**
* @brief unknown
*/
void SetAloTargetHitTest(ALO *palo, int fHitTest);
#endif // ALO_H

View File

@ -115,6 +115,14 @@ struct CHARM : public DPRIZE
*/
void InitDprize(DPRIZE *pdprize);
/**
* @brief Loads a DPrize from an Input Stream
*
* @param pdprize DPrize to initialize
* @param pbis Input Stream
*/
void LoadDprizeFromBrx(DPRIZE *pdprize, CBinaryInputStream *pbis);
/**
* @brief Initializes a DPrize
*
@ -122,6 +130,12 @@ void InitDprize(DPRIZE *pdprize);
*/
void InitCoin(COIN *pcoin);
/**
* @brief Add a life
*
*/
void AddLife(void *ptr);
/**
* @brief Initializes a Charm
*
@ -136,4 +150,7 @@ void InitCharm(CHARM *pcharm);
*/
void InitKey(KEY *pkey);
extern SNIP s_asnipDprize[5];
#endif // COIN_H

View File

@ -1,5 +1,6 @@
#include <coin.h>
#include <chkpnt.h>
#include <bis.h>
void InitDprize(DPRIZE *pdprize)
{
@ -17,7 +18,12 @@ void InitDprize(DPRIZE *pdprize)
pdprize->fLastBounce = 1;
}
INCLUDE_ASM(const s32, "P2/coin", LoadDprizeFromBrx__FP6DPRIZEP18CBinaryInputStream);
void LoadDprizeFromBrx(DPRIZE *pdprize, CBinaryInputStream *pbis)
{
SetAloTargetHitTest(pdprize, 1);
LoadAloFromBrx(pdprize, pbis);
SnipAloObjects(pdprize, 5, s_asnipDprize);
}
INCLUDE_ASM(const s32, "P2/coin", CloneDprize__FP6DPRIZET0);
@ -61,7 +67,19 @@ INCLUDE_ASM(const s32, "P2/coin", UpdateCoin__FP4COINf);
INCLUDE_ASM(const s32, "P2/coin", CreateSwCharm__FP2SW);
INCLUDE_ASM(const s32, "P2/coin", AddLife__FPv);
void AddLife(void *ptr)
{
int new_clife;
int capped_clife;
new_clife = g_pgsCur->clife + 1;
capped_clife = 99;
if (new_clife < 99)
{
capped_clife = new_clife;
}
g_pgsCur->clife = capped_clife;
}
INCLUDE_ASM(const s32, "P2/coin", OnCoinSmack__FP4COIN);

View File

@ -1,10 +1,17 @@
#include <flash.h>
#include <clock.h>
extern CLOCK g_clock;
INCLUDE_ASM(const s32, "P2/flash", InitFlash__FP5FLASH);
INCLUDE_ASM(const s32, "P2/flash", LoadFlashFromBrx__FP5FLASHP18CBinaryInputStream);
INCLUDE_ASM(const s32, "P2/flash", UpdateFlash__FP5FLASHf);
void UpdateFlash(FLASH *pflash,float dt)
{
UpdateAlo((ALO *)pflash,dt);
pflash->gScaleCur = GSmooth(pflash->gScaleCur, pflash->gScaleTarget, g_clock.dt, &pflash->smpScale, 0);
}
INCLUDE_ASM(const s32, "P2/flash", RenderFlashSelf__FP5FLASHP2CMP2RO);

View File

@ -1,4 +1,5 @@
#include <util.h>
#include <vec.h>
#include <sce/rand.h>
#include <sce/math.h>
@ -103,7 +104,12 @@ int FFloatsNear(float g1,float g2,float gEpsilon)
INCLUDE_ASM(const s32, "P2/util", CSolveQuadratic);
INCLUDE_ASM(const s32, "P2/util", PrescaleClq);
void PrescaleClq(CLQ *pclqSrc, float ru, float du, CLQ *pclqDst)
{
pclqDst->w = pclqSrc->w * ru * ru;
pclqDst->v = (pclqSrc->w + pclqSrc->w) * ru * du + pclqSrc->v * ru;
pclqDst->u = pclqSrc->w * du * du + pclqSrc->v * du + pclqSrc->u;
}
INCLUDE_ASM(const s32, "P2/util", CalculateSinCos__FfPfT1);