Skip to content

Commit

Permalink
format band3
Browse files Browse the repository at this point in the history
  • Loading branch information
rjkiv committed Feb 1, 2025
1 parent 518a5ca commit d0c023b
Show file tree
Hide file tree
Showing 393 changed files with 16,791 additions and 14,746 deletions.
35 changes: 20 additions & 15 deletions src/band3/bandtrack/Gem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,19 @@
#include "beatmatch/RGUtl.h"
#include "os/Debug.h"

Gem::Gem(const GameGem& gg, unsigned int ui, float f1, float f2, bool b1, int i1, int i2, bool b2) :
mGameGem(&gg), mStart(f1), mEnd(f2), mTailStart(0), mSlots(ui), mBeardTick(i1), unk_0x3C(0),
unk_0x40(0), unk_0x44(0), unk_0x48(0), unk_0x4C(""), mFirstFretString(-1), mFretPos(0), unk_0x65(-1) {
Gem::Gem(
const GameGem &gg, unsigned int ui, float f1, float f2, bool b1, int i1, int i2, bool b2
)
: mGameGem(&gg), mStart(f1), mEnd(f2), mTailStart(0), mSlots(ui), mBeardTick(i1),
unk_0x3C(0), unk_0x40(0), unk_0x44(0), unk_0x48(0), unk_0x4C(""),
mFirstFretString(-1), mFretPos(0), unk_0x65(-1) {
InitChordInfo(i2, b2);
}

Gem::~Gem() { mTails.clear(); }

Gem& Gem::operator=(const Gem& g) {
(GameGem&)(*mGameGem) = *(g.mGameGem);
Gem &Gem::operator=(const Gem &g) {
(GameGem &)(*mGameGem) = *(g.mGameGem);
mSlots = g.mSlots;

mStart = g.mStart;
Expand All @@ -36,7 +39,8 @@ bool Gem::OnScreen(float ms) {

bool Gem::UseRGChordStyle() const {
bool r = false;
if (mGameGem->IsRealGuitarChord() || unk_0x67_1 || mGameGem->IsMuted()) r = true;
if (mGameGem->IsRealGuitarChord() || unk_0x67_1 || mGameGem->IsMuted())
r = true;
return r;
}

Expand All @@ -51,7 +55,7 @@ void Gem::AddStrumInstance(Symbol s1, Symbol s2) {
if (!mGemManager->GetChordWidgetName(s1, s2, t0)) {
MILO_WARN("could not find widget for %s for %s chord gem in %s", t0, s1, s2);
return;
}
}
}

void Gem::AddHopoTails(Symbol s1) {
Expand All @@ -77,22 +81,25 @@ void Gem::AddHopoTails(Symbol s1) {
}
}

void Gem::Miss() { }
void Gem::Miss() {}

void Gem::Hit() {
for (int i = 0; i < mTails.size(); i++) mTails[i]->Hit();
for (int i = 0; i < mTails.size(); i++)
mTails[i]->Hit();
mBeard = false;
RemoveAllInstances();
mHit = true;
}

void Gem::Release() {
for (int i = 0; i < mTails.size(); i++) mTails[i]->Release();
for (int i = 0; i < mTails.size(); i++)
mTails[i]->Release();
mReleased = true;
}

void Gem::KillDuration() {
for (int i = 0; i < mTails.size(); i++) mTails[i]->Done();
for (int i = 0; i < mTails.size(); i++)
mTails[i]->Done();
}

void Gem::Reset() {
Expand All @@ -116,11 +123,9 @@ float Gem::GetStart() const {
return val;
}

void Gem::SetFretPos(int i) {
mFretPos = i;
}
void Gem::SetFretPos(int i) { mFretPos = i; }

void Gem::GetChordFretLabelInfo(String& s, int& i) const {
void Gem::GetChordFretLabelInfo(String &s, int &i) const {
s = RGFretNumberToString(mFirstFret);
i = mFirstFretString;
}
27 changes: 12 additions & 15 deletions src/band3/bandtrack/Gem.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
#ifndef BANDTRACK_GEM_H
#define BANDTRACK_GEM_H

#pragma once
#include "bandtrack/GemManager.h"
#include "bandtrack/Tail.h"
#include "beatmatch/GameGem.h"
Expand All @@ -10,10 +8,10 @@
#include <functional>

class Gem {
public:
Gem(const GameGem&, unsigned int, float, float, bool, int, int, bool);
public:
Gem(const GameGem &, unsigned int, float, float, bool, int, int, bool);
~Gem();
Gem& operator=(const Gem&);
Gem &operator=(const Gem &);
bool OnScreen(float);
void Poll(float, float, float, float, float);
// void AddRep(GemRepTemplate&, RndGroup*, Symbol, const TrackConfig&, bool);
Expand All @@ -22,7 +20,7 @@ class Gem {
void AddInstance(Symbol, int);
void AddChordInstance(Symbol);
void AddStrumInstance(Symbol, Symbol);
void AddWidgetInstanceImpl(TrackWidget*, int);
void AddWidgetInstanceImpl(TrackWidget *, int);
void AddHopoTails(Symbol);
void RemoveAllInstances();
void SetType(Symbol);
Expand All @@ -39,14 +37,14 @@ class Gem {
float GetStart() const;
void InitChordInfo(int, bool);
void SetFretPos(int);
void GetChordFretLabelInfo(String&, int&) const;
void GetChordFretLabelInfo(String &, int &) const;

GemManager* mGemManager;
const GameGem* mGameGem;
std::set<TrackWidget*> mWidgets;
GemManager *mGemManager;
const GameGem *mGameGem;
std::set<TrackWidget *> mWidgets;
float mStart, mEnd, mTailStart;
int mSlots;
std::vector<Tail*> mTails;
std::vector<Tail *> mTails;
int mBeardTick;
float unk_0x3C, unk_0x40;
int unk_0x44, unk_0x48;
Expand All @@ -61,7 +59,6 @@ class Gem {
bool mInvisible : 1;
bool mBeard : 1;
bool unk_0x66_6 : 1, unk_0x66_7 : 1;
bool unk_0x67_0 : 1, unk_0x67_1 : 1, unk_0x67_2 : 1, unk_0x67_3 : 1, unk_0x67_4 : 1, unk_0x67_5 : 1, unk_0x67_6 : 1, unk_0x67_7 : 1;
bool unk_0x67_0 : 1, unk_0x67_1 : 1, unk_0x67_2 : 1, unk_0x67_3 : 1, unk_0x67_4 : 1,
unk_0x67_5 : 1, unk_0x67_6 : 1, unk_0x67_7 : 1;
};

#endif // BANDTRACK_GEM_H
17 changes: 8 additions & 9 deletions src/band3/bandtrack/GemManager.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#ifndef BANDTRACK_GEMMANAGER_H
#define BANDTRACK_GEMMANAGER_H
#pragma once
#include "obj/Object.h"
#include "utl/Symbol.h"
#include "system/track/TrackDir.h"
Expand All @@ -16,7 +15,9 @@ enum PhraseState {

class PlayerState {
public:
PlayerState() : warning(0), overdriveReady(0), whammy(0), whammyActive(0), phraseState(kPhraseNone), fillState(0), streak(0) {}
PlayerState()
: warning(0), overdriveReady(0), whammy(0), whammyActive(0),
phraseState(kPhraseNone), fillState(0), streak(0) {}

bool warning; // 0x0
bool overdriveReady; // 0x1
Expand All @@ -29,10 +30,10 @@ class PlayerState {

class GemManager {
public:
GemManager(const TrackConfig&, TrackDir*);
GemManager(const TrackConfig &, TrackDir *);
~GemManager();

bool GetChordWidgetName(class Symbol, class Symbol, class Symbol&);
bool GetChordWidgetName(class Symbol, class Symbol, class Symbol &);
bool GetWidgetName(class Symbol &, int, class Symbol);
TrackWidget *GetWidgetByName(Symbol);

Expand All @@ -55,17 +56,15 @@ class GemManager {
void Jump(float);
void SetGemsEnabled(float);
bool OnMissPhrase(int);
void SetBonusGems(bool, const PlayerState&);
void SetBonusGems(bool, const PlayerState &);
void SetInCoda(bool);
void PopSmasher(int);
void UpdateGemStates();
void ResetSmashers(bool);
void UpdateSlotPositions();
Hmx::Object* GetSmasherObj(int);
Hmx::Object *GetSmasherObj(int);
void HideGems();

TrackDir *mTrackDir;
TrackConfig *mTrackConfig;
};

#endif // BANDTRACK_GEMMANAGER_H
76 changes: 46 additions & 30 deletions src/band3/bandtrack/GemRepTemplate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,51 +11,59 @@ enum {
kNumGemSlotMats = 1
};

GemRepTemplate::GemRepTemplate(const TrackConfig& tc) : mConfig(SystemConfig("track_graphics", "gem")),
kTailPulseRate(mConfig->FindArray("tail_pulse_rate", true)->Float(1)),
kTailPulseSmoothing(mConfig->FindArray("tail_pulse_smoothing", true)->Float(1)),
kTailOffsetX(mConfig->FindArray("tail_offset_x", true)->Float(1)),
kTailMinAlpha(mConfig->FindArray("tail_min_alpha", true)->Float(1)),
kTailMaxAlpha(mConfig->FindArray("tail_max_alpha", true)->Float(1)),
kTailAlphaSmoothing(mConfig->FindArray("tail_alpha_smoothing", true)->Float(1)),
kTailFadeDistance(mConfig->FindArray("tail_fade_distance", true)->Float(1)),
kTailMaxLength(mConfig->FindArray("tail_max_length", true)->Float(1)),
kTailFrequencyRange(mConfig->FindArray("tail_min_freq", true)->Float(1), mConfig->FindArray("tail_max_freq", true)->Float(1)),
kTailAmplitudeRange(mConfig->FindArray("tail_min_amp", true)->Float(1), mConfig->FindArray("tail_max_amp", true)->Float(1)),
mTrackCfg(tc), unk_0x3C(0), unk_0x40(1.0f), mObjectDir(NULL) {
mSlots = (RndMat**)new void*[tc.GetMaxSlots()]; // it doesn't call the ctors, so i have to do This to just alloc
GemRepTemplate::GemRepTemplate(const TrackConfig &tc)
: mConfig(SystemConfig("track_graphics", "gem")),
kTailPulseRate(mConfig->FindArray("tail_pulse_rate", true)->Float(1)),
kTailPulseSmoothing(mConfig->FindArray("tail_pulse_smoothing", true)->Float(1)),
kTailOffsetX(mConfig->FindArray("tail_offset_x", true)->Float(1)),
kTailMinAlpha(mConfig->FindArray("tail_min_alpha", true)->Float(1)),
kTailMaxAlpha(mConfig->FindArray("tail_max_alpha", true)->Float(1)),
kTailAlphaSmoothing(mConfig->FindArray("tail_alpha_smoothing", true)->Float(1)),
kTailFadeDistance(mConfig->FindArray("tail_fade_distance", true)->Float(1)),
kTailMaxLength(mConfig->FindArray("tail_max_length", true)->Float(1)),
kTailFrequencyRange(
mConfig->FindArray("tail_min_freq", true)->Float(1),
mConfig->FindArray("tail_max_freq", true)->Float(1)
),
kTailAmplitudeRange(
mConfig->FindArray("tail_min_amp", true)->Float(1),
mConfig->FindArray("tail_max_amp", true)->Float(1)
),
mTrackCfg(tc), unk_0x3C(0), unk_0x40(1.0f), mObjectDir(NULL) {
mSlots = (RndMat **)new void *[tc.GetMaxSlots()]; // it doesn't call the ctors, so i
// have to do This to just alloc
}

GemRepTemplate::~GemRepTemplate() {
RndMesh* end = *mTails.end();
for (RndMesh* it = *mTails.begin(); it != end; it++) delete it; // i hate how well this matches
RndMesh *end = *mTails.end();
for (RndMesh *it = *mTails.begin(); it != end; it++)
delete it; // i hate how well this matches
mTails.clear();
delete[] mSlots;
}

void GemRepTemplate::Init(ObjectDir*) {
void GemRepTemplate::Init(ObjectDir *) {}

}

RndMesh* GemRepTemplate::GetTail() {
RndMesh* m;
if (mTails.size() == 0) m = CreateTail();
RndMesh *GemRepTemplate::GetTail() {
RndMesh *m;
if (mTails.size() == 0)
m = CreateTail();
else {
m = mTails.back();
mTails.pop_back();
}
return m;
}

void GemRepTemplate::ReturnTail(RndMesh* m) {
void GemRepTemplate::ReturnTail(RndMesh *m) {
if (m != NULL) {
UnhookAllParents(m);
mTails.push_back(m);
}
}

RndMesh* GemRepTemplate::CreateTail() {
RndMesh* m = Hmx::Object::New<RndMesh>();
RndMesh *GemRepTemplate::CreateTail() {
RndMesh *m = Hmx::Object::New<RndMesh>();
m->SetMutable(0x3F);
m->Verts().reserve(mTailVerts.size() * (1 + mNumTailSections), true);
m->Faces().reserve((mTailVerts.size() - 1) * mNumTailSections * 2);
Expand All @@ -70,12 +78,20 @@ int GemRepTemplate::GetRequiredFaceCount(int i) const {
return (mTailVerts.size() - 1) * i * 2;
}

RndMat* GemRepTemplate::GetMatByTag(const char* c, int slot) {
const char* s = mConfig->FindArray("mat_formats", true)->FindArray(c, true)->Str(1);
return mObjectDir->Find<RndMat>(MakeString("%s.mat", MakeString(s, slot < mTrackCfg.GetMaxSlots() ? mTrackCfg.GetSlotColor(slot) : "star")), true);
RndMat *GemRepTemplate::GetMatByTag(const char *c, int slot) {
const char *s = mConfig->FindArray("mat_formats", true)->FindArray(c, true)->Str(1);
return mObjectDir->Find<RndMat>(
MakeString(
"%s.mat",
MakeString(
s, slot < mTrackCfg.GetMaxSlots() ? mTrackCfg.GetSlotColor(slot) : "star"
)
),
true
);
}

bool VertLess(const RndMesh::Vert& v1, const RndMesh::Vert& v2) {
bool VertLess(const RndMesh::Vert &v1, const RndMesh::Vert &v2) {
if ((float)std::fabs(double(v1.pos.y - v2.pos.y)) < 0.1f) { // nonsense regswap
return v1.pos.x < v2.pos.x;
}
Expand All @@ -102,13 +118,13 @@ float GemRepTemplate::GetTailSectionLength(GemRepTemplate::TailType type) const
return this[type * 4].mTailSectionLen; // ????
}

RndMat* GemRepTemplate::GetSlotMat(int matIndex, int slotIndex) const {
RndMat *GemRepTemplate::GetSlotMat(int matIndex, int slotIndex) const {
MILO_ASSERT_RANGE(matIndex, 0, kNumGemSlotMats, 244);
MILO_ASSERT_RANGE(slotIndex, 0, mTrackCfg.GetMaxSlots(), 245);
return mSlots[matIndex + slotIndex];
}

void GemRepTemplate::SetSlotMat(int matIndex, int slotIndex, RndMat* mat) {
void GemRepTemplate::SetSlotMat(int matIndex, int slotIndex, RndMat *mat) {
MILO_ASSERT_RANGE(matIndex, 0, kNumGemSlotMats, 251);
MILO_ASSERT_RANGE(slotIndex, 0, mTrackCfg.GetMaxSlots(), 252);
mSlots[matIndex + slotIndex] = mat;
Expand Down
28 changes: 14 additions & 14 deletions src/band3/bandtrack/GemRepTemplate.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,22 @@ class GemRepTemplate {
kNumTailTypes
};

GemRepTemplate(const TrackConfig&);
GemRepTemplate(const TrackConfig &);
~GemRepTemplate();
void Init(ObjectDir*);
RndMesh* GetTail();
void ReturnTail(RndMesh*);
RndMesh* CreateTail();
void Init(ObjectDir *);
RndMesh *GetTail();
void ReturnTail(RndMesh *);
RndMesh *CreateTail();
int GetRequiredVertCount(int) const;
int GetRequiredFaceCount(int) const;
RndMat* GetMatByTag(const char*, int);
RndMat *GetMatByTag(const char *, int);
void SetupTailVerts();
int GetNumTailSections(TailType) const;
float GetTailSectionLength(TailType) const;
RndMat* GetSlotMat(int, int) const;
void SetSlotMat(int, int, RndMat*);
RndMat *GetSlotMat(int, int) const;
void SetSlotMat(int, int, RndMat *);

DataArray* mConfig; // 0x0
DataArray *mConfig; // 0x0
float kTailPulseRate; // 0x4 // why is it k. why
float kTailPulseSmoothing; // 0x8
float kTailOffsetX; // 0xC
Expand All @@ -37,12 +37,12 @@ class GemRepTemplate {
float kTailFadeDistance; // 0x1C
float kTailMaxLength; // 0x20
Vector2 kTailFrequencyRange; // 0x24
Vector2 kTailAmplitudeRange; // 0x2C
const TrackConfig& mTrackCfg; // 0x34
RndMat** mSlots; // 0x38
Vector2 kTailAmplitudeRange; // 0x2C
const TrackConfig &mTrackCfg; // 0x34
RndMat **mSlots; // 0x38
float unk_0x3C;
float unk_0x40;
ObjectDir* mObjectDir; // 0x44
ObjectDir *mObjectDir; // 0x44
uint mNumTailSections;
u32 pad1;
float mTailSectionLen;
Expand All @@ -53,5 +53,5 @@ class GemRepTemplate {

int pad[3];

std::vector<RndMesh*> mTails; // 0x7C
std::vector<RndMesh *> mTails; // 0x7C
};
Loading

0 comments on commit d0c023b

Please sign in to comment.