diff options
Diffstat (limited to '')
| -rwxr-xr-x | include/game.h | 83 | ||||
| -rw-r--r-- | include/newer.h | 26 | 
2 files changed, 80 insertions, 29 deletions
| diff --git a/include/game.h b/include/game.h index e31e675..ef6aba4 100755 --- a/include/game.h +++ b/include/game.h @@ -24,8 +24,10 @@ inline T clamp(T value, T one, T two) { return (value < one) ? one : ((value > t  extern "C" {
  int wcslen(const wchar_t *str);
 +wchar_t *wcscpy(wchar_t *dest, const wchar_t *src);
  int strlen(const char *str);
  char *strcpy(char *dest, const char *src);
 +char *strncpy(char *dest, const char *src, int num);
  int strncmp(const char *str1, const char *str2, int num);
  float atan(float x);
 @@ -138,6 +140,17 @@ inline void *GetGameMgr() {  bool QueryPlayerAvailability(int id);
  void DoStartLevel(void *gameMgr, StartLevelInfo *sl);
 +
 +
 +// Level Conditions
 +//     1 : Has Toad Block
 +//     2 : Is Regular Level (has star coins, etc)
 +//  0x10 : Has Normal Exit
 +//  0x20 : Has Secret Exit
 +//  0x40 : Warp Cannon
 +//  0x80 : 1up/Green Mushroom House
 +// 0x100 : Red Mushroom House
 +// 0x200 : Star/Yellow Mushroom House
  void SetSomeConditionShit(int world, int level, unsigned int bits);
  bool IsWideScreen();
 @@ -152,6 +165,31 @@ bool IsWideScreen();  #define COND_SGNORMAL 0x80
  #define COND_SGSECRET 0x100
 +
 +// All of these are set by "SetWorldCompleteionBitfield" (I didn't name it)
 +// at 801028D0. It's called by ScStage so it doesn't depend on Nintendo maps.
 +
 +#define SAVE_BIT_EXISTS_MAYBE 1
 +
 +// Controls whether you can QUICK SAVE or not. 
 +// Set if 8-Castle is complete.
 +#define SAVE_BIT_GAME_COMPLETE 2
 +
 +// Set when all exits are complete.
 +// This is defined by "ReturnWhetherConditionMaskIsValid" / "SetSomeConditionShit"
 +// TODO: Need to RE and fix this for Newer...
 +#define SAVE_BIT_ALL_EXITS 4
 +
 +// Set when all star coins in worlds 1-8 are obtained.
 +// Valid levels are chosen by the condition crap as above.
 +#define SAVE_BIT_ALL_STAR_COINS 8
 +
 +#define SAVE_BIT_ALL_STAR_COINS_W9 0x10
 +
 +// Set when, well... EVERYTHING is done.
 +#define SAVE_BIT_EVERYTHING_TRULY_DONE 0x20
 +
 +
  class SaveFirstBlock {
  public:
  	char titleID[4];			// 0x00
 @@ -200,7 +238,13 @@ public:  		struct {
  			// ALL Newer additions should go here
  			// This array has been verified as safe to replace
 -			u8 currentNewerWorld; // 0x6FC
 +			char newerWorldName[36]; // 0x6FC
 +			GXColor fsTextColours[2]; // 0x720
 +			GXColor fsHintColours[2]; // 0x728
 +			GXColor hudTextColours[2]; // 0x730
 +			s16 hudHintH, hudHintS, hudHintL; // 0x738
 +			u8 currentMapMusic; // 0x73E
 +			u8 _padding; // 0x73F
  		};
  	};
  	u8 toad_location[10];		// 0x742
 @@ -553,7 +597,13 @@ namespace ut {  		LinkListNode initialNode;
  	};
 -	class Color : public GXColor { };
 +	class Color : public GXColor {
 +		public:
 +			GXColor& operator=(const GXColor &other) {
 +				*((u32*)this) = *((u32*)&other);
 +				return *this;
 +			}
 +	};
  	class Rect {
  	public:
 @@ -644,9 +694,35 @@ namespace lyt {  	};
 +	class TexMap {
 +		public:
 +			void *image, *palette;
 +			u16 width, height;
 +			f32 minLOD, magLOD;
 +			u16 lodBias, palEntryNum;
 +			struct
 +			{
 +				u32                 textureFormat:      4;
 +				u32                 mipmap:             1;
 +				u32                 wrapS:              2;
 +				u32                 wrapT:              2;
 +				u32                 minFilter:          3;
 +				u32                 magFilter:          1;
 +				u32                 biasClampEnable:    1;
 +				u32                 edgeLODEnable:      1;
 +				u32                 anisotropy:         2;
 +				u32                 paletteFormat:      2;
 +			}   mBits;
 +	};
 +
  	class Material {
  	public:
 -		// ...
 +		virtual ~Material();
 +
 +		// cheating a bit here
 +		u8 _[0x3C];
 +		// this is actually a pointer to more stuff, not just texmaps
 +		TexMap *texMaps;
  	};
  	class Pane {
 @@ -3188,6 +3264,7 @@ namespace mHeap {  };
  void WriteNumberToTextBox(int *number, const int *fieldLength, nw4r::lyt::TextBox *textBox, bool unk); // 800B3B60
 +void WriteNumberToTextBox(int *number, nw4r::lyt::TextBox *textBox, bool unk); // 800B3BE0
  namespace EGG {
  	class MsgRes {
 diff --git a/include/newer.h b/include/newer.h index d98f290..cf21cbb 100644 --- a/include/newer.h +++ b/include/newer.h @@ -1,32 +1,6 @@  #ifndef NEWER_H  #define NEWER_H  -enum NWRWorld { -	ISLAND = 0, YOSHI_ISLAND = 0, -	DESERT = 1, RUBBLE_RUINS = 1, -	SEWER = 2, SOGGY_SEWERS = 2, -	MOUNTAIN = 3, MUSHROOM_PEAKS = 3, -	SAKURA = 4, SAKURA_VILLAGE = 4, -	FREEZEFLAME = 5, FREEZEFLAME_GLACIER = 5, -	VOLCANO = 6, FREEZEFLAME_VOLCANO = 6, -	PUMPKIN = 7, PUMPKIN_BONEYARD = 7, -	SKY_MOUNTAIN = 8, -	SKY = 9, STARRY_SKIES = 9, -	PLANET = 10, KOOPA_PLANET = 10, -	CORE = 11, KOOPA_CORE = 11, -	BONUS_LAND = 12, -	GOLDWOOD = 13, GOLDWOOD_FOREST = 13, -	MINIMEGA = 14, MINIMEGA_ISLAND = 14, -	CRYSTAL = 15, CRYSTAL_CAVES = 15, -	BOMBARD = 16, BOMBARD_CLIFFS = 16, -	SKY_CITY = 17, -	WORLD_COUNT = 18, -	UNKNOWN_WORLD = 255 -}; - -NWRWorld NewerWorldForLevelID(int world, int level); - -const wchar_t *NewerWorldName(NWRWorld world);  int getStarCoinCount();  #endif /* NEWER_H */ | 
