Skip to content

Commit

Permalink
fix D_80155244
Browse files Browse the repository at this point in the history
sonicdcer committed Aug 7, 2024
1 parent 4080036 commit 3184b3a
Showing 3 changed files with 170 additions and 90 deletions.
22 changes: 15 additions & 7 deletions src/ric/26C84.c
Original file line number Diff line number Diff line change
@@ -487,31 +487,35 @@ void EntityShrinkingPowerUpRing(Entity* self) {
Primitive* prim2;
s32 baseAngle;
s32 i;
s16* loadedParams;
s32 constE0 = 0xE0;

u32 upperparams = self->params & 0x7F00;
loadedParams = &D_8015519C[(upperparams >> 8) * 3];
s16* loadedParams = &D_8015519C[upperparams >> 8];

rScale = loadedParams[2];
gScale = loadedParams[3];
bScale = loadedParams[4];

gOffset = loadedParams[0];
bOffset = loadedParams[1];

self->posX.i.hi = PLAYER.posX.i.hi;
self->posY.i.hi = PLAYER.posY.i.hi;

switch (self->step) {
case 0:
self->primIndex = g_api.AllocPrimitives(PRIM_GT4, 32);
if (self->primIndex == -1) {
DestroyEntity(self);
return;
}

self->flags = FLAG_UNK_04000000 | FLAG_HAS_PRIMS | FLAG_UNK_40000 |
FLAG_UNK_10000;
prim2 = prim1 = &g_PrimBuf[self->primIndex];
for (i = 0; i < 16; i++) {
prim1 = prim1->next;
}

for (i = 0; i < 16; i++) {
prim2->u0 = ((rcos((s16)(i << 8)) * 2) >> 8) + 0x20;
prim2->v0 = -((rsin((s16)(i << 8)) * 2) >> 8) - 0x21;
@@ -534,28 +538,31 @@ void EntityShrinkingPowerUpRing(Entity* self) {
self->ext.ricPowerRing.unk84 = self->ext.ricPowerRing.unk86 = 0x240;
self->ext.ricPowerRing.unk8A = loadedParams[5];
self->ext.ricPowerRing.unk88 = 0xC0;
self->step += 1;
self->step++;
break;

case 1:
self->ext.ricPowerRing.unk7E += 0x40;
self->ext.ricPowerRing.unk86 -= 10;
if (self->ext.ricPowerRing.unk86 < 0) {
self->ext.ricPowerRing.unk86 = 0;
self->ext.ricPowerRing.unk7C = 0x20;
self->step += 1;
self->step++;
}
self->ext.ricPowerRing.unk84 = self->ext.ricPowerRing.unk86;
self->ext.ricPowerRing.unk82 -= 5;
self->ext.ricPowerRing.unk80 -= 5;
break;

case 2:
self->ext.ricPowerRing.unk7E += 0x40;
self->ext.ricPowerRing.unk82 -= 3;
self->ext.ricPowerRing.unk80 -= 6;
if (--self->ext.ricPowerRing.unk7C == 0) {
self->step += 1;
self->step++;
}
break;

case 3:
self->ext.ricPowerRing.unk7E = self->ext.ricPowerRing.unk7E + 0x40;
self->ext.ricPowerRing.unk82 = self->ext.ricPowerRing.unk82 - 3;
@@ -567,9 +574,11 @@ void EntityShrinkingPowerUpRing(Entity* self) {
}
break;
}

sp38 = self->ext.ricPowerRing.unk8A;
selfX = self->posX.i.hi;
selfY = self->posY.i.hi;

prim2 = prim1 = &g_PrimBuf[self->primIndex];
for (i = 0; i < 16; i++) {
prim1 = prim1->next;
@@ -656,7 +665,6 @@ void EntityShrinkingPowerUpRing(Entity* self) {

// Entity ID #40. Created by blueprint 47. That factory comes from
// RichterHandleDamage.

void EntityHitByIce(Entity* self) {
s32 i;
Primitive* prim;
236 changes: 154 additions & 82 deletions src/ric/d_18C40.c
Original file line number Diff line number Diff line change
@@ -197,90 +197,162 @@ s16 D_80154FBC[][10] = {
0x7100, 0x7100, 0x0200, 0x7007, 0x0031, 0x0200,
};

Point16 D_8015519C[] = {
{0, 0}, {256, 256}, {256, 256}, {1280, 2560}, {256, 256},
{256, 0}, {0, 0}, {256, 28672}, {28672, 512}, {0, 0},
{28928, 28928}, {256, 4096}, {0, 0}, {28928, 256}, {28672, 2048},
{0, 0}, {256, 28928}, {256, 1024}, {1280, 2560}, {256, 256},
{256, 256}, {1280, 2560}, {256, 512}, {28928, 256}, {-2, -24},
{0, -8}, {2, 8}, {0, 24}, {6, -12}, {8, 0},
{7, 12}, {-8, -12}, {-9, 0}, {-7, 12}, {-14, -6},
{-15, 7}, {13, -7}, {16, 8}, {-7, -22}, {6, -21},
{-8, 21}, {7, 22}};
s16 D_8015519C[][6] = {
0x0000, 0x0000,

0x0100, 0x0100,

0x0100, 0x0100,

0x0500, 0x0A00,

0x0100, 0x0100,

0x0100, 0x0000,

0x0000, 0x0000,

0x0100, 0x7000,

0x7000, 0x0200,

0x0000, 0x0000,

0x7100, 0x7100,

0x0100, 0x1000,

0x0000, 0x0000,

0x7100, 0x0100,

0x7000, 0x0800,

0x0000, 0x0000,

0x0100, 0x7100,

0x0100, 0x0400,

0x0500, 0x0A00,

0x0100, 0x0100,

0x0100, 0x0100,

0x0500, 0x0A00,

0x0100, 0x0200,

0x7100, 0x0100,
};

Point16 D_801551FC = {
0xFFFE,
0xFFE8,
};

Point16 D_80155200 = {
0x0000,
0xFFF8,
};

Point16 D_80155204 = {
0x0002,
0x0008,
};

Point16 D_80155208 = {
0x0000,
0x0018,
};

Point16 D_8015520C = {
0x0006,
0xFFF4,
};

Point16 D_80155210 = {
0x0008,
0x0000,
};

Point16 D_80155214 = {
0x0007,
0x000C,
};

Point16 D_80155218 = {
0xFFF8,
0xFFF4,
};

Point16 D_8015521C = {
0xFFF7,
0x0000,
};

Point16 D_80155220 = {
0xFFF9,
0x000C,
};

Point16 D_80155224 = {
0xFFF2,
0xFFFA,
};

Point16 D_80155228 = {
0xFFF1,
0x0007,
};

Point16 D_8015522C = {
0x000D,
0xFFF9,
};

Point16 D_80155230 = {
0x0010,
0x0008,
};

Point16 D_80155234 = {
0xFFF9,
0xFFEA,
};

Point16 D_80155238 = {
0x0006,
0xFFEB,
};

Point16 D_8015523C = {
0xFFF8,
0x0015,
};

Point16 D_80155240 = {
0x0007,
0x0016,
};

Point16* D_80155244[] = {
&D_8015519C[0x18], // + 0x60
&D_8015519C[0x1C], // + 0x70
&D_8015519C[0x19], // + 0x64
&D_8015519C[0x1C], // + 0x70
&D_8015519C[0x1D], // + 0x74
&D_8015519C[0x19], // + 0x64
&D_8015519C[0x1D], // + 0x74
&D_8015519C[0x1A], // + 0x68
&D_8015519C[0x19], // + 0x64
&D_8015519C[0x1D], // + 0x74
&D_8015519C[0x1E], // + 0x78
&D_8015519C[0x1A], // + 0x68
&D_8015519C[0x1E], // + 0x78
&D_8015519C[0x1B], // + 0x6C
&D_8015519C[0x1A], // + 0x68
&D_8015519C[0x1A], // + 0x68
&D_8015519C[0x1B], // + 0x6C
&D_8015519C[0x21], // + 0x84
&D_8015519C[0x1A], // + 0x68
&D_8015519C[0x21], // + 0x84
&D_8015519C[0x20], // + 0x80
&D_8015519C[0x19], // + 0x64
&D_8015519C[0x1A], // + 0x68
&D_8015519C[0x20], // + 0x80
&D_8015519C[0x19], // + 0x64
&D_8015519C[0x20], // + 0x80
&D_8015519C[0x1F], // + 0x7C
&D_8015519C[0x19], // + 0x64
&D_8015519C[0x1F], // + 0x7C
&D_8015519C[0x18], // + 0x60
&D_8015519C[0x1C], // + 0x70
&D_8015519C[0x24], // + 0x90
&D_8015519C[0x1D], // + 0x74
&D_8015519C[0x24], // + 0x90
&D_8015519C[0x25], // + 0x94
&D_8015519C[0x1D], // + 0x74
&D_8015519C[0x25], // + 0x94
&D_8015519C[0x1E], // + 0x78
&D_8015519C[0x1D], // + 0x74
&D_8015519C[0x1F], // + 0x7C
&D_8015519C[0x20], // + 0x80
&D_8015519C[0x22], // + 0x88
&D_8015519C[0x20], // + 0x80
&D_8015519C[0x23], // + 0x8C
&D_8015519C[0x22], // + 0x88
&D_8015519C[0x20], // + 0x80
&D_8015519C[0x21], // + 0x84
&D_8015519C[0x23], // + 0x8C
&D_8015519C[0x18], // + 0x60
&D_8015519C[0x1F], // + 0x7C
&D_8015519C[0x26], // + 0x98
&D_8015519C[0x18], // + 0x60
&D_8015519C[0x27], // + 0x9C
&D_8015519C[0x1C], // + 0x70
&D_8015519C[0x1B], // + 0x6C
&D_8015519C[0x28], // + 0xA0
&D_8015519C[0x21], // + 0x84
&D_8015519C[0x1E], // + 0x78
&D_8015519C[0x29], // + 0xA4
&D_8015519C[0x1B], // + 0x6C
&D_8015519C[0x26], // + 0x98
&D_8015519C[0x1F], // + 0x7C
&D_8015519C[0x22], // + 0x88
&D_8015519C[0x27], // + 0x9C
&D_8015519C[0x24], // + 0x90
&D_8015519C[0x1C], // + 0x70
&D_8015519C[0x23], // + 0x8C
&D_8015519C[0x21], // + 0x84
&D_8015519C[0x28], // + 0xA0
&D_8015519C[0x25], // + 0x94
&D_8015519C[0x29], // + 0xA4
&D_8015519C[0x1E], // + 0x78
&D_801551FC, &D_8015520C, &D_80155200, &D_8015520C, &D_80155210,
&D_80155200, &D_80155210, &D_80155204, &D_80155200, &D_80155210,
&D_80155214, &D_80155204, &D_80155214, &D_80155208, &D_80155204,
&D_80155204, &D_80155208, &D_80155220, &D_80155204, &D_80155220,
&D_8015521C, &D_80155200, &D_80155204, &D_8015521C, &D_80155200,
&D_8015521C, &D_80155218, &D_80155200, &D_80155218, &D_801551FC,
&D_8015520C, &D_8015522C, &D_80155210, &D_8015522C, &D_80155230,
&D_80155210, &D_80155230, &D_80155214, &D_80155210, &D_80155218,
&D_8015521C, &D_80155224, &D_8015521C, &D_80155228, &D_80155224,
&D_8015521C, &D_80155220, &D_80155228, &D_801551FC, &D_80155218,
&D_80155234, &D_801551FC, &D_80155238, &D_8015520C, &D_80155208,
&D_8015523C, &D_80155220, &D_80155214, &D_80155240, &D_80155208,
&D_80155234, &D_80155218, &D_80155224, &D_80155238, &D_8015522C,
&D_8015520C, &D_80155228, &D_80155220, &D_8015523C, &D_80155230,
&D_80155240, &D_80155214,
};

s16 D_80155364[] = {
2 changes: 1 addition & 1 deletion src/ric/ric.h
Original file line number Diff line number Diff line change
@@ -157,7 +157,7 @@ extern s16 D_80154EAC[];
extern s32 D_80154EB4[];
extern s32 D_80154EC4[];
extern unkStr80154E5C D_80154E5C[];
extern Point16 D_8015519C[];
extern s16 D_8015519C[][6];
extern s16 D_80155364[];
extern AnimationFrame* D_8015538C[];
extern AnimationFrame D_80155394[];

0 comments on commit 3184b3a

Please sign in to comment.