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
2 changes: 1 addition & 1 deletion configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -1271,7 +1271,7 @@ def MatchingFor(*versions):
Object(NonMatching, "Osako/Award2D.cpp"),
Object(Matching, "Osako/NameEntryHelper.cpp"),
Object(NonMatching, "Osako/LANBackground.cpp"),
Object(NonMatching, "Osako/LANSelectMode.cpp"),
Object(Matching, "Osako/LANSelectMode.cpp"),
Object(NonMatching, "Osako/LANTitle.cpp"),
Object(NonMatching, "Osako/LANEntry.cpp"),
Object(NonMatching, "Osako/LANPlayInfo.cpp"),
Expand Down
168 changes: 138 additions & 30 deletions include/Osako/LANSelectMode.h
Original file line number Diff line number Diff line change
@@ -1,70 +1,139 @@
#ifndef LANSELECTMODE_H
#define LANSELECTMODE_H

#include "JSystem/J2D/J2DAnimation.h"
#include "JSystem/J2D/J2DPicture.h"
#include "JSystem/J2D/J2DScreen.h"
#include "JSystem/ResTIMG.h"
#include "dolphin/types.h"
#include "macros.h"
#include <JSystem/J2D/J2DPane.h>
#include <JSystem/JKernel/JKRArchive.h>

class LANSelectMode { // Autogenerated
public:
class Color {
public:

enum Color {
cLanColor_0,
cLanColor_1,
cLanColor_2,
};

class Background {
public:
Background(JKRArchive *archive) {
mTransFrame = 0;
mKeyFrame = 0;
setup(archive);
}

void setup(JKRArchive *);
void calc();

void draw(const J2DGrafContext *graf) {
mScreen.draw(0.0f, 0.0f, graf);
}

// Inline/Unused
~Background();
};
private:
J2DScreen mScreen;
J2DAnmTransform *mTrans;
J2DAnmTextureSRTKey*mTexKey;
s16 mTransFrame;
s16 mKeyFrame;
PLACEHOLDER_BYTES(0x124, 0x128);
}; // Size: 0x128?

class Item {
public:
void changeColor(Color); // 0x80212dac
void calc(); // 0x80212e50

// Inline/Unused
Item(u32, J2DScreen *, void *);
void selectIn();
void selectOut();
void unselect();
// Inline
void update(); // 0x802158b0
void changeValueUp(); // 0x80216018
void changeValueDown(); // 0x80216020
};

virtual void update() {} // 0x802158b0
virtual void calc(); // 0x80212e50
virtual bool changeValueUp() { return false; } // 0x80216018
virtual bool changeValueDown() { return false; } // 0x80216020
virtual void changeColor(Color); // 0x80212dac

void changeTex(ResTIMG *paImg) {
mBasePicture->changeTexture(paImg, 0);
}
protected:
int mState;
J2DPane *mBasePane;
J2DPicture *mBasePicture;
J2DAnmTransform *mTrans;
s16 mTransFrame;
}; // Size: 0x18

class SelectableItem : public Item {
public:
SelectableItem(u32, J2DScreen *, void *, void *, void *, int, int, u32); // 0x80212f00
void changeValueUp(); // 0x802132d8
void changeValueDown(); // 0x802133c8
bool changeValueUp(); // 0x802132d8
bool changeValueDown(); // 0x802133c8

void update(); // 0x802134b4
void calc(); // 0x8021350c

// Inline/Unused
void setMask(u32);
void setMax(int);
};

int get_18() {
return mIdx;
}
protected:
int mIdx;
int mMax;
u32 mMask;
int _24;
J2DAnmTransform *mTrans1;
J2DAnmTransform *mTrans2;
J2DAnmTextureSRTKey *mTexKey;
J2DAnmTevRegKey *mKey1;
J2DAnmTevRegKey *mKey2;
J2DPane *mLeftPane;
J2DPane *mRightPane;
s16 mTransFrame1;
s16 mTransFrame2;
s16 mTexFrame;
s16 mKeyFrame1;
s16 mKeyFrame2;
}; // size: 0x50? (padded)

class SelectableItem1 : public SelectableItem {
public:
void changeColor(Color); // 0x80213770
virtual void changeColor(Color); // 0x80213770
void calc(); // 0x80213884

// Inline/Unused
SelectableItem1(u32, J2DScreen *, void *, void *, void *, ResTIMG **, int);
};

// Fabricated Inlines
void changeImg(ResTIMG **paImg) {
mTimg = paImg;
mPicture->changeTexture(mTimg[mIdx], 0);

}
protected:
J2DPicture *mPicture;
ResTIMG **mTimg;
}; // Size: 0x58

class SelectableItem2 : public SelectableItem {
public:
void changeColor(Color); // 0x80213b3c
virtual void changeColor(Color); // 0x80213b3c
void calc(); // 0x80213cc0

// Inline/Unused
SelectableItem2(u32, J2DScreen *, void *, void *, void *);
private:
J2DPicture *_50;
J2DPicture *_54;
};

class SelectableItemDisp : public SelectableItem {
Expand All @@ -74,19 +143,37 @@ class LANSelectMode { // Autogenerated

// Inline/Unused
SelectableItemDisp(u32, J2DScreen *, void *, void *, void *);
};

class SelectableItemSw {
private:
J2DPicture *mImgL1;
J2DPicture *mImgL2;
J2DPicture *mImgSw;
J2DAnmTevRegKey *mKeyDisp;
s16 _60;
}; // Size: 0x64

class SelectableItemSw : public SelectableItem1 {
public:
enum ValueMode {

cValueMode_0,
cValueMode_1,
};
void changeValueMode(ValueMode); // 0x80213fc0

ValueMode getValueMode() {
return mValueMode;
}

// Inline/Unused
SelectableItemSw(u32, J2DScreen *, void *, void *, void *, ResTIMG **, ResTIMG **, int, ResTIMG **, int);
void setMaskSw(u32);
};
private:
ValueMode mValueMode;
int mIdxSw;
int mMaxSw;
u32 mMaskSw;
ResTIMG **mValueTimg;
ResTIMG **mTimgSw;
}; // Size: 0x70

LANSelectMode(JKRArchive *); // 0x8021462c
void directView(int); // 0x802158b4
Expand All @@ -97,14 +184,35 @@ class LANSelectMode { // Autogenerated
void setDisplayMax(); // 0x80216358

private:
u8 _0[0x350];
u32 mState;
bool _4;
bool _5;
Background mBackground;
J2DScreen mScreen; // foreground?
J2DAnmBase *mAnm;
s16 mAnmFrame;
int mItemIdx;
u32 mItemMask;
SelectableItem1 *mModeItem;
SelectableItem1 *mPowerItem;
SelectableItem2 *mLapItem;
SelectableItem1 *mOrderItem;
SelectableItemSw *mCourseSelectItem;
SelectableItem1 *mTagItem;
SelectableItemDisp *mDisplayItem;
Item *mItem;
Item *mItems[8];
ResTIMG *mGameModeImg[3];
ResTIMG *mPowerImg[4];
ResTIMG *mOrderImg[2];
ResTIMG *mCrsOrderImg[7];
ResTIMG *_2d8;
ResTIMG *mStageOrderImg[2];
ResTIMG *mSelectImg[2];
ResTIMG *mCrsNameImg[16];
ResTIMG *mMapImg[6];
ResTIMG *mTagImg[2];
PLACEHOLDER_BYTES(0x34c, 0x350);
}; // class LANSelectMode

extern const char *cpaGameModeTex[];
extern const char *cpaCrsOrderTex[];
extern const char *cpaCrsNameTex[];
extern const char *cpaStageOrderTex[];
extern const char *cpaLabelNameTex[];
extern const char *cpaTagTex[];

#endif // LANSELECTMODE_H
4 changes: 4 additions & 0 deletions include/Osako/MenuTitleLine.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ class MenuTitleLine

~MenuTitleLine() { mspMenuTitleLine = nullptr; }

void draw(const J2DGrafContext *graf) {
mScreen.draw(0.0f, 0.0f, graf);
}

static MenuTitleLine *create(JKRArchive *archive, JKRHeap *heap)
{
if (mspMenuTitleLine == nullptr)
Expand Down
16 changes: 9 additions & 7 deletions include/Osako/NetGameMgr.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ class NetGameMgr
void setState(int state) { mState = state; }
int getState() { return mState; }
int getNetworkNum() { return mNetworkNum; }
int getNetworkCubes() { return mNetworkCubes; }
u8 getNetworkCubes() { return mNetworkCubes; }

// Fabricated
u8 getPadConvNum(u8 idx)
Expand All @@ -112,9 +112,10 @@ class NetGameMgr
return (temp % 4);
}

u8 get12ee() { return _12EE; }
u8 get12ee() { return _12ee; }
u16 get12ec() { return _12ec; }

void set12ee(int val) { _12EE = val; }
void set12ee(int val) { _12ee = val; }

private:
u8 _0[0x96c]; //
Expand All @@ -123,11 +124,12 @@ class NetGameMgr
u8 mNetworkNum; // C58
u8 _C59[0x12e8 - 0xC59]; //
u8 mNetworkCubes; // 12e8
u8 _12e9[0x12ee - 0x12e9]; //
u8 _12EE; //
u8 _12EF[0x12f4 - 0x12EF]; //
u8 _12e9[0x12ec - 0x12e9]; //
u16 _12ec; //
u8 _12ee; //
u8 _12ef[0x12f4 - 0x12EF]; //
u8 mPadConvData[16]; // this might be a double sided array and a union?
u8 _1304[0x1308 - 0x1304]; //

}; // size: 0x1308
#endif // NETGAMEMGR_H
#endif // NETGAMEMGR_H
8 changes: 8 additions & 0 deletions libs/PowerPC_EABI_Support/include/utility
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@
#define _STD_PAIR_H

namespace std {

template <class T>
inline void swap(T &a, T &b) {
T tmp(a);
a = b;
b = tmp;
}

template <typename T1, typename T2>
struct pair {
T1 first;
Expand Down
Loading
Loading