Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions include/Camera/CameraMapTool.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,13 @@
#include <JSystem/JGeometry.hpp>
#include <Strategic/NameRefAry.hpp>

// TODO: the fields of this class are most definitely incorrect because of how
// it behaves sinside of a TVector. See InsertRaw for it in MarNameRefGen.
class TCameraMapTool : public JDrama::TNameRef {
public:
struct TPitchYaw {
f32 pitch;
f32 yaw;
};

TCameraMapTool(const char* name = "<TCameraMapTool>")
: JDrama::TNameRef(name)
{
Expand All @@ -18,13 +21,13 @@ class TCameraMapTool : public JDrama::TNameRef {
void load(JSUMemoryInputStream&);

// Fabricated
f32 getYaw() const { return mPitchYaw.y; }
f32 getYaw() const { return mPitchYaw.yaw; }
int getCameraMode() const { return mCameraMode; }
int getDemoLengthFrames() const { return mDemoLengthFrames; }

public:
/* 0xC */ JGeometry::TVec3<f32> mPosition;
/* 0x18 */ JGeometry::TVec2<f32> mPitchYaw;
/* 0x18 */ TPitchYaw mPitchYaw;
/* 0x20 */ u32 unk20;
/* 0x24 */ s32 mCameraMode;
/* 0x28 */ s32 unk28;
Expand Down
8 changes: 8 additions & 0 deletions include/Enemy/HamuKuri.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,14 @@ class THamuKuriLauncher : public TLauncher {
virtual void stateLaunch();
};

class THamuKuriLauncherManager : public TLauncherManager {
public:
THamuKuriLauncherManager(const char* name)
: TLauncherManager(name)
{
}
};

// ============= params =============

class THamuKuriSaveLoadParams : public TWalkerEnemyParams {
Expand Down
8 changes: 8 additions & 0 deletions include/Enemy/NameKuri.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,14 @@ class TNameKuriLauncher : public TLauncher {
virtual void stateLaunch();
};

class TNameKuriLauncherManager : public TLauncherManager {
public:
TNameKuriLauncherManager(const char* name)
: TLauncherManager(name)
{
}
};

class TNameKuriSaveLoadParams : public TWalkerEnemyParams {
public:
TNameKuriSaveLoadParams(const char* path);
Expand Down
8 changes: 4 additions & 4 deletions src/Camera/CameraMapTool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ void TCameraMapTool::load(JSUMemoryInputStream& stream)
{
JDrama::TNameRef::load(stream);

stream >> mPosition.x >> mPosition.y >> mPosition.z >> mPitchYaw.x
>> mPitchYaw.y;
stream >> mPosition.x >> mPosition.y >> mPosition.z >> mPitchYaw.pitch
>> mPitchYaw.yaw;

stream >> unk20;
stream >> mCameraMode;
Expand All @@ -26,8 +26,8 @@ void TCameraMapTool::calcPosAndAt(JGeometry::TVec3<f32>* pos,
pos->set(mPosition);

if (gpCamera->isFixCameraSpecifyMode(mCameraMode)) {
CLBPolarToCross(*pos, at, 1000.0f, CLBDegToShortAngle(-mPitchYaw.x),
CLBDegToShortAngle(mPitchYaw.y));
CLBPolarToCross(*pos, at, 1000.0f, CLBDegToShortAngle(-mPitchYaw.pitch),
CLBDegToShortAngle(mPitchYaw.yaw));
} else {
at->set(gpCamera->getUsualLookat());
}
Expand Down
19 changes: 7 additions & 12 deletions src/System/CardManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -97,23 +97,21 @@ s32 TCardSector::read(CARDFileInfo* file, s32 index,
void TCardManager::TCriteria::set(TCardManager::TCriteria::TEBlockStat state,
u32 write_count, const void* sector_data)
{
(void)0;
(void)0;
mState = state;
if (mState == STATE_VALID) {
mWriteCount = write_count;
memcpy(&mPreviewBytes, sector_data, sizeof(mPreviewBytes));
} else {
setEmpty();
} else if (mState == STATE_EMPTY) {
mWriteCount = 0;
memset(mPreviewBytes, 0, sizeof(mPreviewBytes));
}
}

void TCardManager::TCriteria::setEmpty()
{
if (mState == STATE_EMPTY) {
mWriteCount = 0;
memset(mPreviewBytes, 0, sizeof(mPreviewBytes));
}
mState = STATE_EMPTY;
mWriteCount = 0;
memset(mPreviewBytes, 0, sizeof(mPreviewBytes));
}

#pragma dont_inline on
Expand Down Expand Up @@ -650,7 +648,6 @@ s32 TCardManager::readOptionBlock_()
s32 result = open_(&info);
if (result == CARD_RESULT_READY) {
TCardSector* sector = (TCardSector*)mSector;

if (mSectorCriteria[0].mState == TCriteria::STATE_EMPTY) {
sector->clearData();
sector->setCheckSum(0);
Expand Down Expand Up @@ -734,9 +731,7 @@ s32 TCardManager::writeCardSector_(CARDFileInfo* file, s32 index,
if (errc != CARD_RESULT_READY)
return errc;

errc = sector->read(file, index, criteria);

return errc;
return sector->read(file, index, criteria);
}

s32 TCardManager::cmdLoop()
Expand Down
32 changes: 15 additions & 17 deletions src/System/EmitterViewObj.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -485,14 +485,14 @@ JPABaseEmitter* TMarioParticleManager::emitParticleCallBack(
{
if (param_3 == 1) {
int type = param_1 - 253;
int idx = getAvailableIdx(type, param_3, param_4);
int idx = getAvailableIdx(type, param_3, param_5);
TInfo* info = &unk10[type][idx];
info->onFlag(INFO_FLAG_UNK4);
info->offFlag(INFO_FLAG_BIND_TO_POS);
info->offFlag(INFO_FLAG_BIND_TO_RT_MTX);
info->offFlag(INFO_FLAG_BIND_TO_SRT_MTX);
info->unk4 = param_2;
info->unk0 = param_4;
info->unk0 = param_5;
if (info->mEmitter == nullptr)
emitTry(param_1, info, param_3);
if (info->mEmitter != nullptr) {
Expand All @@ -503,14 +503,14 @@ JPABaseEmitter* TMarioParticleManager::emitParticleCallBack(

if (param_3 == 3) {
int type = param_1 - 486;
int idx = getAvailableIdx(type, param_3, param_4);
int idx = getAvailableIdx(type, param_3, param_5);
TInfo* info = &unk368[type][idx];
info->onFlag(INFO_FLAG_UNK4);
info->offFlag(INFO_FLAG_BIND_TO_POS);
info->offFlag(INFO_FLAG_BIND_TO_RT_MTX);
info->offFlag(INFO_FLAG_BIND_TO_SRT_MTX);
info->unk4 = param_2;
info->unk0 = param_4;
info->unk0 = param_5;
if (info->mEmitter == nullptr)
emitTry(param_1, info, param_3);
if (info->mEmitter != nullptr) {
Expand Down Expand Up @@ -601,45 +601,43 @@ void SMSSetEmitterPolColor(JPABaseEmitter* param_1, int param_2)
if (param_2 < 0 || param_2 > 7)
return;

int value;

if (param_2 == 6) {
switch (gpMarDirector->mMap) {
case 1:
if (gpMarDirector->unk7D == 5) {
value = 3;
param_2 = 3;
break;
}
// FALLTHROUGH

case 2:
case 55:
value = 2;
param_2 = 2;
break;

case 9:
case 0:
case 57:
value = 1;
param_2 = 1;
break;

case 3:
value = 3;
param_2 = 3;
break;

case 8:
value = 4;
param_2 = 4;
break;

case 6:
case 7:
case 14:
case 56:
value = 5;
param_2 = 5;
break;

default:
value = 0;
param_2 = 0;
break;
}
}
Expand All @@ -656,9 +654,9 @@ void SMSSetEmitterPolColor(JPABaseEmitter* param_1, int param_2)
{ 0xB7, 0x24, 0x08, 0xFF }, { 0x00, 0x73, 0x6C, 0xFF },
};

param_1->setGlobalPrmColor(prmarray[value].r, prmarray[value].g,
prmarray[value].b);
param_1->setGlobalPrmColor(prmarray[param_2].r, prmarray[param_2].g,
prmarray[param_2].b);

param_1->setGlobalEnvColor(envarray[value].r, envarray[value].g,
envarray[value].b);
param_1->setGlobalEnvColor(envarray[param_2].r, envarray[param_2].g,
envarray[param_2].b);
}
7 changes: 4 additions & 3 deletions src/System/EventWatcher.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1008,9 +1008,10 @@ static void evSetTransScale(TSpcTypedInterp<TEventWatcher>* interp, u32 arg_num)
TMapObjBase* obj = (TMapObjBase*)getNameRefPtr(interp->pop());

obj->makeObjAppeared();
obj->changeObjSRT(JGeometry::TVec3<f32>(sx, sy, sz),
JGeometry::TVec3<f32>(0.0f, 0.0f, 0.0f),
JGeometry::TVec3<f32>(tx, ty, tz));
JGeometry::TVec3<f32> scale(sx, sy, sz);
JGeometry::TVec3<f32> rot(0.0f, 0.0f, 0.0f);
JGeometry::TVec3<f32> trans(tx, ty, tz);
obj->changeObjSRT(scale, rot, trans);

interp->push();
}
Expand Down
4 changes: 2 additions & 2 deletions src/System/MarDirectorEvent.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,8 @@ void TMarDirector::fireGetStar(TShine* shine)
unk25C = shine;
onFlag(DIRECTOR_FLAG_SHINE_GET_PENDING);
JGeometry::TVec3<f32>& v = shine->mInitialRotation;
fireStartDemoCamera(!shine->unk190 ? cCameraBckNameShineGetInside
: cCameraBckNameShineGetOutside,
fireStartDemoCamera(!shine->unk190 ? cCameraBckNameShineGetOutside
: cCameraBckNameShineGetInside,
&gpMarioOriginal->mPosition, -1, v.y, false, nullptr, 0,
nullptr, JDrama::TFlagT<u16>(0));
}
Expand Down
21 changes: 9 additions & 12 deletions src/System/MarNameRefGen_BossEnemy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include <Enemy/Emario.hpp>
#include <Enemy/BossEel.hpp>
#include <Enemy/BossManta.hpp>
#include <Enemy/BossPakkun.hpp>
#include <Enemy/Hinokuri2.hpp>
#include <System/MarNameRefGen.hpp>

Expand Down Expand Up @@ -130,21 +131,17 @@ JDrama::TNameRef* TMarNameRefGen::getNameRef_BossEnemy(const char* name) const
// if ( strcmp( name, "BossWanwanManager" ) == 0 )
// return new TBossWanwanManager("ボスワンワンマネージャ");

// TODO:
// if ( strcmp( name, "BossPakkun" ) == 0 )
// return new TBossPakkun("ボスパックン改");
if (strcmp(name, "BossPakkun") == 0)
return new TBossPakkun("ボスパックン改");

// TODO:
// if ( strcmp( name, "KBossPakkun" ) == 0 )
// return new TBossPakkun("ボスパックン軽");
if (strcmp(name, "KBossPakkun") == 0)
return new TBossPakkun("ボスパックン軽");

// TODO:
// if ( strcmp( name, "BossPakkunManager" ) == 0 )
// return new TBossPakkunManager("ボスパックンマネージャー", 0);
if (strcmp(name, "BossPakkunManager") == 0)
return new TBossPakkunManager("ボスパックンマネージャー", 0);

// TODO:
// if ( strcmp( name, "KBossPakkunManager" ) == 0 )
// return new TBossPakkunManager("ボスパックン軽マネージャ", 1);
if (strcmp(name, "KBossPakkunManager") == 0)
return new TBossPakkunManager("ボスパックン軽マネージャ", 1);

// TODO:
// if ( strcmp( name, "BossTelesa" ) == 0 )
Expand Down
55 changes: 23 additions & 32 deletions src/System/MarNameRefGen_Enemy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#include <Enemy/Kumokun.hpp>
#include <Enemy/EggGen.hpp>
#include <Enemy/Igaiga.hpp>
#include <Enemy/TobiPuku.hpp>
#include <Animal/AnimalBase.hpp>
#include <Animal/AnimalManager.hpp>
#include <Animal/Butterfly.hpp>
Expand Down Expand Up @@ -69,7 +70,7 @@ JDrama::TNameRef* TMarNameRefGen::getNameRef_Enemy(const char* name) const
// return new TFruitsBoatManager(3, "フルーツの船マネージャー");

if (strcmp(name, "AnimalMew") == 0)
return new TAnimalBase(0x80001);
return new TAnimalBase(0x800001, "?");

if (strcmp(name, "MewManager") == 0)
return new TMewManager;
Expand Down Expand Up @@ -306,7 +307,7 @@ JDrama::TNameRef* TMarNameRefGen::getNameRef_Enemy(const char* name) const
return new TPoiHana;

if (strcmp(name, "PoiHanaRed") == 0)
return new TPoiHana;
return new TPoiHanaRed;

if (strcmp(name, "SleepPoiHana") == 0)
return new TSleepPoiHana;
Expand All @@ -321,37 +322,29 @@ JDrama::TNameRef* TMarNameRefGen::getNameRef_Enemy(const char* name) const
if (strcmp(name, "FireWanwan") == 0)
return new TFireWanwan;

// TODO:
// if ( strcmp(name, "TobiPukuLaunchPadManager") == 0)
// return new TTobiPukuLaunchPadManager;
if (strcmp(name, "TobiPukuLaunchPadManager") == 0)
return new TTobiPukuLaunchPadManager("とびプク発射台マネージャー");

// TODO:
// if ( strcmp(name, "TobiPukuLaunchPad") == 0)
// return new TTobiPukuLaunchPad;
if (strcmp(name, "TobiPukuLaunchPad") == 0)
return new TTobiPukuLaunchPad("とびプク発射台");

// TODO:
// if ( strcmp(name, "MoePukuLaunchPadManager") == 0)
// return new TTobiPukuLaunchPadManager;
if (strcmp(name, "MoePukuLaunchPadManager") == 0)
return new TMoePukuLaunchPadManager;

// TODO:
// if ( strcmp(name, "MoePukuLaunchPad") == 0)
// return new TTobiPukuLaunchPad;
if (strcmp(name, "MoePukuLaunchPad") == 0)
return new TMoePukuLaunchPad;

// TODO:
// if ( strcmp(name, "TobiPukuManager") == 0)
// return new TTobiPukuManager;
if (strcmp(name, "TobiPukuManager") == 0)
return new TTobiPukuManager("とびプクマネージャー");

// TODO:
// if ( strcmp(name, "MoePukuManager") == 0)
// return new TTobiPukuManager;
if (strcmp(name, "MoePukuManager") == 0)
return new TMoePukuManager;

// TODO:
// if ( strcmp(name, "PukuPuku") == 0)
// return new TPukuPuku;
if (strcmp(name, "PukuPuku") == 0)
return new TPukuPuku("プクプク");

// TODO:
// if ( strcmp( name, "MoePuku" ) == 0 )
// return new TTobiPuku;
if (strcmp(name, "MoePuku") == 0)
return new TMoePuku;

// TODO:
// if ( strcmp(name, "TabePukuManager") == 0)
Expand Down Expand Up @@ -441,16 +434,14 @@ JDrama::TNameRef* TMarNameRefGen::getNameRef_Enemy(const char* name) const
if (strcmp(name, "HamukuriLauncher") == 0)
return new THamuKuriLauncher;

// TODO:
// if (strcmp(name, "HamukuriLauncherManager") == 0)
// return new THamukuriLauncherManager("ハムクリランチャーマネージャー");
if (strcmp(name, "HamukuriLauncherManager") == 0)
return new THamuKuriLauncherManager("ハムクリランチャーマネージャー");

if (strcmp(name, "NamekuriLauncher") == 0)
return new TNameKuriLauncher;

// TODO:
// if (strcmp(name, "NamekuriLauncherManager") == 0)
// return new TNamekuriLauncherManager("ナメクリランチャーマネージャー");
if (strcmp(name, "NamekuriLauncherManager") == 0)
return new TNameKuriLauncherManager("ナメクリランチャーマネージャー");

if (strcmp(name, "IgaigaManager") == 0)
return new TIgaigaManager;
Expand Down
Loading
Loading