CSE2-tweaks/src/MyChar.h

116 lines
2.5 KiB
C

// THIS IS DECOMPILED PROPRIETARY CODE - USE AT YOUR OWN RISK.
//
// The original code belongs to Daisuke "Pixel" Amaya.
//
// Modifications and custom code are under the MIT licence.
// See LICENCE.txt for details.
#pragma once
#include "WindowsWrapper.h"
#include "CommonDefines.h"
// TODO - When I add bitmask constants for gMC.flags...
// 0x100 is a 'player is underwater' flag
// gMC.equip
enum
{
EQUIP_BOOSTER_0_8 = 1,
EQUIP_MAP = 2,
EQUIP_ARMS_BARRIER = 4,
EQUIP_TURBOCHARGE = 8,
EQUIP_AIR_TANK = 0x10,
EQUIP_BOOSTER_2_0 = 0x20,
EQUIP_MIMIGA_MASK = 0x40,
EQUIP_WHIMSICAL_STAR = 0x80,
EQUIP_NIKUMARU_COUNTER = 0x100
};
typedef struct MYCHAR_PHYSICS
{
int max_dash;
int max_move;
int gravity1;
int gravity2;
int dash1;
int dash2;
int resist;
int jump;
} MYCHAR_PHYSICS;
typedef struct MYCHAR
{
unsigned char cond;
unsigned int flag;
int direct;
BOOL up;
BOOL down;
int unit;
int equip;
int x;
int y;
int tgt_x;
int tgt_y;
int index_x;
int index_y;
int xm;
int ym;
int ani_wait;
int ani_no;
OTHER_RECT hit;
OTHER_RECT view;
RECT rect;
RECT rect_arms;
int level;
int exp_wait;
int exp_count;
unsigned char shock;
unsigned char no_life;
unsigned char rensha;
unsigned char bubble;
short life;
short star;
short max_life;
short a;
int lifeBr;
int lifeBr_count;
int air;
int air_get;
signed char sprash; // This is explicitly a char, but used like a BOOL
signed char ques; // Same for this variable as well
signed char boost_sw;
int boost_cnt;
// Custom
MYCHAR_PHYSICS physics_normal;
MYCHAR_PHYSICS physics_underwater;
int no_splash_or_air_limit_underwater; // Determines whether the behaviours in which entering water causes a splash, being in water draws the air timer and being in water decreases your air are enabled (0 means it's enabled, non-0 means it's disabled)
} MYCHAR;
extern MYCHAR gMC;
extern BOOL gbInfiniteBoost;
extern BOOL gbGraceJump;
extern int gDefaultBooster;
void InitMyChar(void);
void AnimationMyChar(BOOL bKey);
void ShowMyChar(BOOL bShow);
void PutMyChar(int fx, int fy);
void ActMyChar_Normal(BOOL bKey);
void ActMyChar(BOOL bKey);
void GetMyCharPosition(int *x, int *y);
void SetMyCharPosition(int x, int y);
void MoveMyChar(int x, int y);
void ZeroMyCharXMove(void);
int GetUnitMyChar(void);
void SetMyCharDirect(unsigned char dir);
void ChangeMyUnit(unsigned char a);
void PitMyChar(void);
void EquipItem(int flag, BOOL b);
void ResetCheck(void);
void SetNoise(int no, int freq);
void CutNoise(void);
void ResetNoise(void);
void SleepNoise(void);