mirror of
https://github.com/krystalgamer/spidey-decomp.git
synced 2025-02-12 07:50:32 +00:00
CDummy::SelectNewTrack
This commit is contained in:
parent
e6b12df629
commit
3fe91b888d
5
ob.cpp
5
ob.cpp
@ -528,7 +528,10 @@ void CSuper::ApplyPose(__int16 *a2){
|
||||
// @NotOk
|
||||
// slightly different register allocation
|
||||
// relies on global Animations
|
||||
void CSuper::RunAnim(__int16 a2, int a3, int a4)
|
||||
void CSuper::RunAnim(
|
||||
i32 a2,
|
||||
i32 a3,
|
||||
i32 a4)
|
||||
{
|
||||
int mRegion; // ecx
|
||||
unsigned __int16 v6; // dx
|
||||
|
2
ob.h
2
ob.h
@ -164,7 +164,7 @@ public:
|
||||
EXPORT void UpdateFrame(void);
|
||||
EXPORT void CycleAnim(int a2, char a3);
|
||||
EXPORT void ApplyPose(__int16 *a2);
|
||||
EXPORT void RunAnim(__int16, int, int);
|
||||
EXPORT void RunAnim(i32, i32, i32);
|
||||
|
||||
|
||||
int field_F4;
|
||||
|
66
shell.cpp
66
shell.cpp
@ -1,7 +1,63 @@
|
||||
#pragma once
|
||||
#include "shell.h"
|
||||
#include "validate.h"
|
||||
#include "ps2m3d.h"
|
||||
#include "utils.h"
|
||||
|
||||
// @Ok
|
||||
void CDummy::SelectNewTrack(int a2)
|
||||
{
|
||||
this->field_1B8 = 0;
|
||||
this->field_1BC = 0;
|
||||
|
||||
if (this->field_1A4 || this->field_1A8 || this->field_1AC)
|
||||
{
|
||||
do
|
||||
{
|
||||
switch(Rnd(3))
|
||||
{
|
||||
case 0:
|
||||
this->field_1B8 = this->field_1A4;
|
||||
break;
|
||||
case 1:
|
||||
this->field_1B8 = this->field_1A8;
|
||||
break;
|
||||
case 2:
|
||||
this->field_1B8 = this->field_1AC;
|
||||
break;
|
||||
}
|
||||
}
|
||||
while(!this->field_1B8);
|
||||
|
||||
print_if_false(*this->field_1B8 != 0xFFFF, "First anim must not be 0xFFFF");
|
||||
|
||||
if (a2)
|
||||
{
|
||||
u16 *v7 = this->field_1B8;
|
||||
i32 i = 0;
|
||||
for (i = 0; *v7 != 0xFFFF; i++)
|
||||
v7++;
|
||||
|
||||
i32 v9 = 0;
|
||||
i32 v10;
|
||||
do
|
||||
{
|
||||
v10 = Rnd(i);
|
||||
v9++;
|
||||
}
|
||||
while (this->field_1B8[v10] == this->field_12A && v9 < 100);
|
||||
|
||||
if (this->field_1B8[v10] != this->field_12A)
|
||||
this->field_1B8 = &this->field_1B8[v10];
|
||||
}
|
||||
|
||||
this->field_1BC = this->field_1B8;
|
||||
this->RunAnim(*this->field_1BC, 0, -1);
|
||||
}
|
||||
else
|
||||
{
|
||||
this->RunAnim(this->field_1C0, 0, -1);
|
||||
}
|
||||
}
|
||||
|
||||
// @Ok
|
||||
void __inline CDummy::FadeAway(void)
|
||||
@ -47,6 +103,7 @@ void CShellMysterioHeadGlow::Move(void)
|
||||
this->field_54 += this->field_A4;
|
||||
}
|
||||
|
||||
// @Ok
|
||||
void Spidey_CIcon::AI(void)
|
||||
{
|
||||
this->mAngles.vy += 50;
|
||||
@ -64,6 +121,13 @@ void validate_CRudeWordHitterSpidey(void){
|
||||
void validate_CDummy(void){
|
||||
VALIDATE_SIZE(CDummy, 0xA18);
|
||||
|
||||
VALIDATE(CDummy, field_1A4, 0x1A4);
|
||||
VALIDATE(CDummy, field_1A8, 0x1A8);
|
||||
VALIDATE(CDummy, field_1AC, 0x1AC);
|
||||
VALIDATE(CDummy, field_1B8, 0x1B8);
|
||||
VALIDATE(CDummy, field_1BC, 0x1BC);
|
||||
VALIDATE(CDummy, field_1C0, 0x1C0);
|
||||
|
||||
VALIDATE(CDummy, field_1F8, 0x1F8);
|
||||
VALIDATE(CDummy, field_1FC, 0x1FC);
|
||||
|
||||
|
20
shell.h
20
shell.h
@ -38,10 +38,24 @@ class CDummy : public CSuper {
|
||||
public:
|
||||
EXPORT void FadeBack(void);
|
||||
EXPORT void FadeAway(void);
|
||||
unsigned char padStart[0x1F8-0x194];
|
||||
EXPORT void SelectNewTrack(int);
|
||||
unsigned char padStart[0x1A4-0x194];
|
||||
|
||||
int field_1F8;
|
||||
int field_1FC;
|
||||
u16 *field_1A4;
|
||||
u16 *field_1A8;
|
||||
u16 *field_1AC;
|
||||
|
||||
u8 padAfter1AC[0x1B8-0x1AC-4];
|
||||
|
||||
u16 *field_1B8;
|
||||
u16 *field_1BC;
|
||||
i32 field_1C0;
|
||||
|
||||
u8 padAfter1BC[0x1F8-0x1C0-4];
|
||||
|
||||
|
||||
i32 field_1F8;
|
||||
i32 field_1FC;
|
||||
unsigned char padAfter1FC[0x240-0x1FC-4];
|
||||
|
||||
CItem field_240;
|
||||
|
Loading…
x
Reference in New Issue
Block a user