Merge pull request #9 from Clownacy/master

Merge Clownacy/master into master
This commit is contained in:
Gabriel Ravier 2019-05-06 21:27:06 +02:00 committed by GitHub
commit 1f055ccfe8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 1466 additions and 1121 deletions

View file

@ -59,6 +59,218 @@ addr = 0x403650
name = "HitBulletMap"
addr = 0x403740
[[func]]
name = "InitBullet"
addr = 0x403C00
[[func]]
name = "CountArmsBullet"
addr = 0x403C40
[[func]]
name = "CountBulletNum"
addr = 0x403CB0
[[func]]
name = "DeleteBullet"
addr = 0x403D10
[[func]]
name = "ClearBullet"
addr = 0x403D80
[[func]]
name = "PutBullet"
addr = 0x403DC0
[[func]]
name = "SetBullet"
addr = 0x403F80
[[func]]
name = "ActBullet_Frontia1"
addr = 0x404160
[[func]]
name = "ActBullet_Frontia2"
addr = 0x4043F0
[[func]]
name = "ActBullet_PoleStar"
addr = 0x4047B0
[[func]]
name = "ActBullet_FireBall"
addr = 0x404B30
[[func]]
name = "ActBullet_MachineGun"
addr = 0x405120
[[func]]
name = "ActBullet_Missile"
addr = 0x4055A0
[[func]]
name = "ActBullet_Bom"
addr = 0x405D80
[[func]]
name = "ActBullet_Bubblin1"
addr = 0x405F30
[[func]]
name = "ActBullet_Bubblin2"
addr = 0x406190
[[func]]
name = "ActBullet_Bubblin3"
addr = 0x4064D0
[[func]]
name = "ActBullet_Spine"
addr = 0x4068B0
[[func]]
name = "ActBullet_Sword1"
addr = 0x406BB0
[[func]]
name = "ActBullet_Sword2"
addr = 0x406E60
[[func]]
name = "ActBullet_Sword3"
addr = 0x407110
[[func]]
name = "ActBullet_Edge"
addr = 0x4075E0
[[func]]
name = "ActBullet_Drop"
addr = 0x4078A0
[[func]]
name = "ActBullet_SuperMissile"
addr = 0x407910
[[func]]
name = "ActBullet_SuperBom"
addr = 0x408080
[[func]]
name = "ActBullet_Nemesis"
addr = 0x408230
[[func]]
name = "ActBullet_Spur"
addr = 0x408710
[[func]]
name = "ActBullet_SpurTail"
addr = 0x408AE0
[[func]]
name = "ActBullet_EnemyClear"
addr = 0x408F40
[[func]]
name = "ActBullet_Star"
addr = 0x408F90
[[func]]
name = "ActBullet"
addr = 0x408FC0
[[func]]
name = "IsActiveSomeBullet"
addr = 0x4095C0
[[func]]
name = "InitCaret"
addr = 0x409650
[[func]]
name = "ActCaret00"
addr = 0x409670
[[func]]
name = "ActCaret01"
addr = 0x409680
[[func]]
name = "ActCaret02"
addr = 0x409880
[[func]]
name = "ActCaret03"
addr = 0x409B80
[[func]]
name = "ActCaret04"
addr = 0x409C70
[[func]]
name = "ActCaret05"
addr = 0x409E00
[[func]]
name = "ActCaret07"
addr = 0x409F60
[[func]]
name = "ActCaret08"
addr = 0x40A120
[[func]]
name = "ActCaret09"
addr = 0x40A1B0
[[func]]
name = "ActCaret10"
addr = 0x40A280
[[func]]
name = "ActCaret11"
addr = 0x40A3F0
[[func]]
name = "ActCaret12"
addr = 0x40A5A0
[[func]]
name = "ActCaret13"
addr = 0x40A650
[[func]]
name = "ActCaret14"
addr = 0x40A7E0
[[func]]
name = "ActCaret15"
addr = 0x40A8F0
[[func]]
name = "ActCaret16"
addr = 0x40A9E0
[[func]]
name = "ActCaret17"
addr = 0x40AAA0
[[func]]
name = "ActCaret"
addr = 0x40AB50
[[func]]
name = "PutCaret"
addr = 0x40ABC0
[[func]]
name = "SetCaret"
addr = 0x40AC90
[[func]]
name = "Call_Escape"
addr = 0x40DD70
@ -342,6 +554,54 @@ addr = 0x41C8F0
name = "MakePixelWaveData"
addr = 0x41CB10
[[func]]
name = "ShootBullet_Frontia1"
addr = 0x41DBD0
[[func]]
name = "ShootBullet_PoleStar"
addr = 0x41DE60
[[func]]
name = "ShootBullet_FireBall"
addr = 0x41E110
[[func]]
name = "ShootBullet_Machinegun1"
addr = 0x41E3D0
[[func]]
name = "ShootBullet_Missile"
addr = 0x41E7B0
[[func]]
name = "ShootBullet_Bubblin1"
addr = 0x41EFD0
[[func]]
name = "ShootBullet_Bubblin2"
addr = 0x41F280
[[func]]
name = "ShootBullet_Sword"
addr = 0x41F580
[[func]]
name = "ShootBullet_Nemesis"
addr = 0x41F710
[[func]]
name = "ResetSpurCharge"
addr = 0x41F9E0
[[func]]
name = "ShootBullet_Spur"
addr = 0x41FA10
[[func]]
name = "ShootBullet"
addr = 0x41FE70
[[func]]
name = "PlaySoundObject"
addr = 0x420640

File diff suppressed because it is too large Load diff

View file

@ -34,7 +34,7 @@ void ActCaret01(CARET *crt)
{64, 24, 72, 32},
{72, 24, 80, 32},
{80, 24, 88, 32},
{88, 24, 92, 32},
{88, 24, 96, 32},
};
if (!crt->act_no)
@ -55,10 +55,10 @@ void ActCaret01(CARET *crt)
crt->cond = 0;
}
if (crt->direct)
crt->rect = rcRight[crt->ani_no];
else
if (crt->direct == 0)
crt->rect = rcLeft[crt->ani_no];
else
crt->rect = rcRight[crt->ani_no];
}
void ActCaret02(CARET *crt)
@ -88,32 +88,39 @@ void ActCaret02(CARET *crt)
case 0:
crt->ym -= 0x10;
crt->y += crt->ym;
if (++crt->ani_wait > 5)
{
crt->ani_wait = 0;
++crt->ani_no;
}
if ( crt->ani_no > 3 )
if (crt->ani_no > 3)
crt->cond = 0;
crt->rect = rect_left[crt->ani_no];
break;
case 1:
crt->rect = rect_up[++crt->ani_wait / 2 % 3];
if (crt->ani_wait > 24)
crt->cond = 0;
break;
case 2:
if ( ++crt->ani_wait > 2 )
if (++crt->ani_wait > 2)
{
crt->ani_wait = 0;
++crt->ani_no;
}
if ( crt->ani_no > 3 )
if (crt->ani_no > 3)
crt->cond = 0;
crt->rect = rect_right[crt->ani_no];
break;
case 1:
crt->rect = rect_up[++crt->ani_wait / 2 % 3];
if (crt->ani_wait > 24)
crt->cond = 0;
break;
}
}
@ -158,7 +165,7 @@ void ActCaret04(CARET *crt)
crt->cond = 0;
}
crt->rect = rect[crt->ani_no + 3 * crt->direct];
crt->rect = rect[3 * crt->direct + crt->ani_no];
}
void ActCaret05(CARET *crt)
@ -243,9 +250,10 @@ void ActCaret09(CARET *crt)
RECT rcLeft = {0, 80, 16, 96};
RECT rcRight = {48, 64, 64, 80};
if (++crt->ani_wait <= 4)
if (++crt->ani_wait < 5)
crt->y -= 0x800;
if (crt->ani_wait == 32 )
if (crt->ani_wait == 32)
crt->cond = 0;
if (crt->direct == 0)
@ -268,33 +276,37 @@ void ActCaret10(CARET *crt)
++crt->ani_wait;
if (crt->direct)
if (crt->direct == 0)
{
if (crt->ani_wait < 20)
crt->y -= 0x200;
crt->y -= 0x400;
if (crt->ani_wait == 80)
crt->cond = 0;
crt->cond = 0;
}
else
{
if (crt->ani_wait < 20)
crt->y -= 0x400;
crt->y -= 0x200;
if (crt->ani_wait == 80)
crt->cond = 0;
}
if (crt->direct)
crt->rect = rcRight[crt->ani_wait / 2 % 2];
else
if (crt->direct == 0)
crt->rect = rcLeft[crt->ani_wait / 2 % 2];
else
crt->rect = rcRight[crt->ani_wait / 2 % 2];
}
void ActCaret11(CARET *crt)
{
unsigned char deg;
if (!crt->act_no)
{
crt->act_no = 1;
uint8_t deg = Random(0, 0xFF);
deg = Random(0, 0xFF);
crt->xm = 2 * GetCos(deg);
crt->ym = 2 * GetSin(deg);
}
@ -346,7 +358,7 @@ void ActCaret13(CARET *crt)
{0, 0, 0, 0},
};
if (!crt->act_no)
if (crt->act_no == 0)
{
crt->act_no = 1;
@ -363,10 +375,12 @@ void ActCaret13(CARET *crt)
}
}
if (!crt->direct)
switch (crt->direct)
{
crt->xm = 4 * crt->xm / 5;
crt->ym = 4 * crt->ym / 5;
case 0:
crt->xm = 4 * crt->xm / 5;
crt->ym = 4 * crt->ym / 5;
break;
}
crt->x += crt->xm;
@ -502,10 +516,16 @@ CARETFUNCTION gpCaretFuncTbl[] =
void ActCaret()
{
for (int i = 0; i < CARET_MAX; i++)
int i;
int code;
for (i = 0; i < CARET_MAX; i++)
{
if (gCrt[i].cond & 0x80)
gpCaretFuncTbl[gCrt[i].code](&gCrt[i]);
{
code = gCrt[i].code;
gpCaretFuncTbl[code](&gCrt[i]);
}
}
}
@ -527,19 +547,20 @@ void PutCaret(int fx, int fy)
void SetCaret(int x, int y, int code, int dir)
{
for (int c = 0; c < CARET_MAX; c++)
{
if (!gCrt[c].cond)
{
memset(&gCrt[c], 0, sizeof(CARET));
gCrt[c].cond = 0x80;
gCrt[c].code = code;
gCrt[c].x = x;
gCrt[c].y = y;
gCrt[c].view_left = gCaretTable[code].view_left;
gCrt[c].view_top = gCaretTable[code].view_top;
gCrt[c].direct = dir;
int c;
for (c = 0; c < CARET_MAX; c++)
if (gCrt[c].cond == 0)
break;
}
}
if (c == CARET_MAX)
return;
memset(&gCrt[c], 0, sizeof(CARET));
gCrt[c].cond = 0x80;
gCrt[c].code = code;
gCrt[c].x = x;
gCrt[c].y = y;
gCrt[c].view_left = gCaretTable[code].view_left;
gCrt[c].view_top = gCaretTable[code].view_top;
gCrt[c].direct = dir;
}

View file

@ -59,7 +59,7 @@ void PutStripper()
}
//Create a cast object
void SetStripper(int x, int y, char *text, int cast)
void SetStripper(int x, int y, const char *text, int cast)
{
for (int s = 0; s < MAX_STRIP; s++)
{

View file

@ -37,7 +37,7 @@ struct ISLAND_SPRITE
void ActionStripper();
void PutStripper();
void SetStripper(int x, int y, char *text, int cast);
void SetStripper(int x, int y, const char *text, int cast);
void RestoreStripper();
void ActionIllust();
void PutIllust();

View file

@ -16,9 +16,9 @@ struct FADE
int mode;
BOOL bMask;
int count;
char ani_no[FADE_HEIGHT][FADE_WIDTH];
char flag[FADE_HEIGHT][FADE_WIDTH]; // Not a BOOLEAN (those are unsigned)
char dir;
signed char ani_no[FADE_HEIGHT][FADE_WIDTH];
signed char flag[FADE_HEIGHT][FADE_WIDTH]; // Not a BOOLEAN (those are unsigned)
signed char dir;
};
static FADE gFade;
@ -41,7 +41,7 @@ void ClearFade()
gFade.mode = 0;
}
void StartFadeOut(char dir)
void StartFadeOut(signed char dir)
{
gFade.mode = 2;
gFade.count = 0;
@ -58,7 +58,7 @@ void StartFadeOut(char dir)
}
}
void StartFadeIn(char dir)
void StartFadeIn(signed char dir)
{
int x;
int y;

View file

@ -5,8 +5,8 @@
void InitFade();
void SetFadeMask();
void ClearFade();
void StartFadeOut(char dir);
void StartFadeIn(char dir);
void StartFadeOut(signed char dir);
void StartFadeIn(signed char dir);
void ProcFade();
void PutFade();
BOOL GetFadeActive();

View file

@ -2,6 +2,8 @@
#include "SDL.h"
#include "WindowsWrapper.h"
#include "ArmsItem.h"
#include "CommonDefines.h"
#include "Caret.h"
@ -92,7 +94,7 @@ void ZeroExpMyChar()
gArmsData[gSelectedArms].exp = 0;
}
bool IsMaxExpMyChar()
BOOL IsMaxExpMyChar()
{
return gArmsData[gSelectedArms].level == 3
&& gArmsData[gSelectedArms].exp >= gArmsLevelTable[gArmsData[gSelectedArms].code].exp[2];

View file

@ -2,6 +2,8 @@
#include <stdint.h>
#include "WindowsWrapper.h"
struct ARMS_LEVEL
{
int exp[3];
@ -17,7 +19,7 @@ extern ARMS_LEVEL gArmsLevelTable[14];
void AddExpMyChar(int x);
void ZeroExpMyChar();
bool IsMaxExpMyChar();
BOOL IsMaxExpMyChar();
void DamageMyChar(int damage);
void ZeroArmsEnergy_All();
void AddBulletMyChar(int no, int val);

View file

@ -53,7 +53,7 @@ void SetUniqueParameter(NPCHAR *npc)
npc->view.bottom = gNpcTable[code].view.bottom << 9;
}
bool LoadEvent(char *path_event)
bool LoadEvent(const char *path_event)
{
char path[PATH_LENGTH];
sprintf(path, "%s/%s", gDataPath, path_event);

View file

@ -83,7 +83,7 @@ extern int gSuperXpos;
extern int gSuperYpos;
void InitNpChar();
bool LoadEvent(char *path_event);
bool LoadEvent(const char *path_event);
void SetNpChar(int code_char, int x, int y, int xm, int ym, int dir, NPCHAR *npc, int start_index);
void SetDestroyNpChar(int x, int y, int w, int num);
void SetDestroyNpCharUp(int x, int y, int w, int num);

View file

@ -303,7 +303,7 @@ void ChangeDramVolume(int32_t volume, int8_t track)
lpDRAMBUFFER[track]->SetVolume((volume - 0xFF) * 8);
}
void PlayDramObject(unsigned char key, int mode,char track)
void PlayDramObject(unsigned char key, int mode, signed char track)
{
switch(mode)
{

View file

@ -56,7 +56,7 @@ void MakeWaveTables(void)
// White noise wave
rep_srand(0);
for (i = 0; i < 256; ++i)
gWaveModelTable[5][i] = (char)(rep_rand() & 0xFF) / 2;
gWaveModelTable[5][i] = (signed char)(rep_rand() & 0xFF) / 2;
}
BOOL MakePixelWaveData(const PIXTONEPARAMETER *ptp, unsigned char *pData)

View file

@ -40,7 +40,7 @@ bool IsProfile()
return true;
}
bool SaveProfile(char *name)
bool SaveProfile(const char *name)
{
//Get path
char path[PATH_LENGTH];
@ -119,7 +119,7 @@ bool SaveProfile(char *name)
return true;
}
bool LoadProfile(char *name)
bool LoadProfile(const char *name)
{
//Get path
char path[PATH_LENGTH];

View file

@ -25,12 +25,12 @@ struct PROFILE
ARMS arms[8];
ITEM items[32];
PERMIT_STAGE permitstage[8];
char permit_mapping[0x80];
signed char permit_mapping[0x80];
char FLAG[4];
uint8_t flags[1000];
};
bool IsProfile();
bool SaveProfile(char *name);
bool LoadProfile(char *name);
bool SaveProfile(const char *name);
bool LoadProfile(const char *name);
bool InitializeGame();

File diff suppressed because it is too large Load diff

View file

@ -10,7 +10,7 @@ struct STAGE_TABLE
char back[0x20];
char npc[0x20];
char boss[0x20];
char boss_no;
signed char boss_no;
char name[0x20];
};

View file

@ -141,7 +141,7 @@ bool LoadTextScript2(const char *name)
}
//Load stage .tsc
bool LoadTextScript_Stage(char *name)
bool LoadTextScript_Stage(const char *name)
{
//Open Head.tsc
char path[PATH_LENGTH];

View file

@ -16,10 +16,10 @@ struct TEXT_SCRIPT
char *data;
//Mode (ex. NOD, WAI)
char mode;
signed char mode;
//Flags
char flags;
signed char flags;
//Current positions (read position in buffer, x position in line)
unsigned int p_read;
@ -37,7 +37,7 @@ struct TEXT_SCRIPT
int next_event;
//Yes/no selected
char select;
signed char select;
//Current face
int face;
@ -61,7 +61,7 @@ BOOL InitTextScript2();
void EndTextScript();
void EncryptionBinaryData2(uint8_t *pData, int size);
bool LoadTextScript2(const char *name);
bool LoadTextScript_Stage(char *name);
bool LoadTextScript_Stage(const char *name);
void GetTextScriptPath(char *path);
BOOL StartTextScript(int no);
void StopTextScript();

View file

@ -13,6 +13,12 @@ typedef int BOOL;
#define TRUE 1
#endif
#define SET_RECT(rect, l, t, r, b) \
rect.left = l; \
rect.top = t; \
rect.right = r; \
rect.bottom = b;
struct RECT
{
union