ref: 1f055ccfe86822e48f83b32340c0a41caed01b3b
parent: 45cde7e4a3dc80865965174f56e7e19ff73e81e8
parent: 25e68bfb9d92d048009d3f062862b8c0e9e70b8c
author: Gabriel Ravier <31440290+GabrielRavier@users.noreply.github.com>
date: Mon May 6 17:27:06 EDT 2019
Merge pull request #9 from Clownacy/master Merge Clownacy/master into master
--- a/msvc2003/devilution/comparer-config.toml
+++ b/msvc2003/devilution/comparer-config.toml
@@ -60,6 +60,218 @@
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
@@ -341,6 +553,54 @@
[[func]]
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"
--- a/src/Bullet.cpp
+++ b/src/Bullet.cpp
@@ -96,7 +96,9 @@
void DeleteBullet(int code)
{
- for (int i = 0; i < BULLET_MAX; i++)
+ int i;
+ int unknown = 0; // Not the original name
+ for (i = 0; i < BULLET_MAX; i++)
{
if (gBul[i].cond & 0x80)
{
@@ -114,12 +116,13 @@
void PutBullet(int fx, int fy)
{
- for (int i = 0; i < BULLET_MAX; i++)
+ int i;
+ int x, y;
+
+ for (i = 0; i < BULLET_MAX; i++)
{
if (gBul[i].cond & 0x80)
- {
- int x, y;
-
+ {
switch (gBul[i].direct)
{
case 0:
@@ -147,31 +150,31 @@
void SetBullet(int no, int x, int y, int dir)
{
- for (int i = 0; i < BULLET_MAX; i++)
- {
- if (!(gBul[i].cond & 0x80))
- {
- memset(&gBul[i], 0, sizeof(BULLET));
- gBul[i].code_bullet = no;
- gBul[i].cond = 0x80;
- gBul[i].direct = dir;
- gBul[i].damage = gBulTbl[no].damage;
- gBul[i].life = gBulTbl[no].life;
- gBul[i].life_count = gBulTbl[no].life_count;
- gBul[i].bbits = gBulTbl[no].bbits;
- gBul[i].enemyXL = gBulTbl[no].enemyXL << 9;
- gBul[i].enemyYL = gBulTbl[no].enemyYL << 9;
- gBul[i].blockXL = gBulTbl[no].blockXL << 9;
- gBul[i].blockYL = gBulTbl[no].blockYL << 9;
- gBul[i].view.back = gBulTbl[no].view.back << 9;
- gBul[i].view.front = gBulTbl[no].view.front << 9;
- gBul[i].view.top = gBulTbl[no].view.top << 9;
- gBul[i].view.bottom = gBulTbl[no].view.bottom << 9;
- gBul[i].x = x;
- gBul[i].y = y;
- break;
- }
- }
+ int i = 0;
+ while (i < BULLET_MAX && gBul[i].cond & 0x80)
+ ++i;
+
+ if (i >= BULLET_MAX)
+ return;
+
+ memset(&gBul[i], 0, sizeof(BULLET));
+ gBul[i].code_bullet = no;
+ gBul[i].cond = 0x80;
+ gBul[i].direct = dir;
+ gBul[i].damage = gBulTbl[no].damage;
+ gBul[i].life = gBulTbl[no].life;
+ gBul[i].life_count = gBulTbl[no].life_count;
+ gBul[i].bbits = gBulTbl[no].bbits;
+ gBul[i].enemyXL = gBulTbl[no].enemyXL << 9;
+ gBul[i].enemyYL = gBulTbl[no].enemyYL << 9;
+ gBul[i].blockXL = gBulTbl[no].blockXL << 9;
+ gBul[i].blockYL = gBulTbl[no].blockYL << 9;
+ gBul[i].view.back = gBulTbl[no].view.back << 9;
+ gBul[i].view.front = gBulTbl[no].view.front << 9;
+ gBul[i].view.top = gBulTbl[no].view.top << 9;
+ gBul[i].view.bottom = gBulTbl[no].view.bottom << 9;
+ gBul[i].x = x;
+ gBul[i].y = y;
}
void ActBullet_Frontia1(BULLET *bul)
@@ -183,13 +186,8 @@
}
else
{
- if (bul->act_no)
+ if (bul->act_no == 0)
{
- bul->x += bul->xm;
- bul->y += bul->ym;
- }
- else
- {
bul->ani_no = Random(0, 2);
bul->act_no = 1;
@@ -209,6 +207,11 @@
break;
}
}
+ else
+ {
+ bul->x += bul->xm;
+ bul->y += bul->ym;
+ }
if (++bul->ani_wait > 0)
{
@@ -249,98 +252,98 @@
}
else
{
- if (bul->act_no)
+ if (bul->act_no == 0)
{
+ bul->ani_no = Random(0, 2);
+ bul->act_no = 1;
+
switch (bul->direct)
{
case 0:
- bul->xm -= 0x80;
+ bul->xm = -0x200;
break;
case 1:
- bul->ym -= 0x80;
+ bul->ym = -0x200;
break;
case 2:
- bul->xm += 0x80;
+ bul->xm = 0x200;
break;
case 3:
- bul->ym += 0x80;
+ bul->ym = 0x200;
break;
}
+ static unsigned int inc;
+ ++inc;
+
switch (bul->direct)
{
case 0:
case 2:
- if (bul->count1 % 5 == 2)
- {
- if (bul->ym < 0)
- bul->ym = 0x400;
- else
- bul->ym = -0x400;
- }
+ if (inc % 2)
+ bul->ym = 0x400;
+ else
+ bul->ym = -0x400;
break;
- case 1u:
- case 3u:
- if (bul->count1 % 5 == 2)
- {
- if (bul->xm < 0)
- bul->xm = 0x400;
- else
- bul->xm = -0x400;
- }
+ case 1:
+ case 3:
+ if (inc % 2)
+ bul->xm = 0x400;
+ else
+ bul->xm = -0x400;
break;
}
-
- bul->x += bul->xm;
- bul->y += bul->ym;
}
else
{
- bul->ani_no = Random(0, 2);
- bul->act_no = 1;
-
switch (bul->direct)
{
case 0:
- bul->xm = -0x200;
+ bul->xm -= 0x80;
break;
case 1:
- bul->ym = -0x200;
+ bul->ym -= 0x80;
break;
case 2:
- bul->xm = 0x200;
+ bul->xm += 0x80;
break;
case 3:
- bul->ym = 0x200;
+ bul->ym += 0x80;
break;
}
- static unsigned int inc;
- ++inc;
-
switch (bul->direct)
{
case 0:
case 2:
- if (inc % 2)
- bul->ym = 0x400;
- else
- bul->ym = -0x400;
+ if (bul->count1 % 5 == 2)
+ {
+ if (bul->ym < 0)
+ bul->ym = 0x400;
+ else
+ bul->ym = -0x400;
+ }
break;
- case 1:
- case 3:
- if (inc % 2)
- bul->xm = -0x400;
- else
- bul->xm = 0x400;
+ case 1u:
+ case 3u:
+ if (bul->count1 % 5 == 2)
+ {
+ if (bul->xm < 0)
+ bul->xm = 0x400;
+ else
+ bul->xm = -0x400;
+ }
break;
}
+
+ bul->x += bul->xm;
+ bul->y += bul->ym;
}
if ( ++bul->ani_wait > 0 )
@@ -369,16 +372,19 @@
void ActBullet_PoleStar(BULLET *bul, int level)
{
- if (++bul->count1 <= bul->life_count)
+ RECT rect1[2];
+ RECT rect2[2];
+ RECT rect3[2];
+
+ if (++bul->count1 > bul->life_count)
{
- if (bul->act_no)
+ bul->cond = 0;
+ SetCaret(bul->x, bul->y, 3, 0);
+ }
+ else
+ {
+ if (bul->act_no == 0)
{
- //Move
- bul->x += bul->xm;
- bul->y += bul->ym;
- }
- else
- {
bul->act_no = 1;
//Set speed
@@ -399,114 +405,108 @@
}
//Set hitbox
- if (level == 1)
- {
- switch (bul->direct)
- {
- case 0:
- bul->enemyYL = 0x400;
- break;
- case 1:
- bul->enemyXL = 0x400;
- break;
- case 2:
- bul->enemyYL = 0x400;
- break;
- case 3:
- bul->enemyXL = 0x400;
- break;
- }
- }
- else if (level == 2)
- {
- switch (bul->direct)
- {
- case 0:
- bul->enemyYL = 0x800;
- break;
- case 1:
- bul->enemyXL = 0x800;
- break;
- case 2:
- bul->enemyYL = 0x800;
- break;
- case 3:
- bul->enemyXL = 0x800;
- break;
- }
- }
-
- //Set framerect
switch (level)
{
case 1:
- if (bul->direct != 1 && bul->direct != 3)
+ switch (bul->direct)
{
- bul->rect.left = 128;
- bul->rect.top = 32;
- bul->rect.right = 144;
- bul->rect.bottom = 48;
+ case 0:
+ bul->enemyYL = 0x400;
+ break;
+ case 1:
+ bul->enemyXL = 0x400;
+ break;
+ case 2:
+ bul->enemyYL = 0x400;
+ break;
+ case 3:
+ bul->enemyXL = 0x400;
+ break;
}
- else
- {
- bul->rect.left = 144;
- bul->rect.top = 32;
- bul->rect.right = 160;
- bul->rect.bottom = 48;
- }
break;
case 2:
- if (bul->direct != 1 && bul->direct != 3)
+ switch (bul->direct)
{
- bul->rect.left = 160;
- bul->rect.top = 32;
- bul->rect.right = 176;
- bul->rect.bottom = 48;
+ case 0:
+ bul->enemyYL = 0x800;
+ break;
+ case 1:
+ bul->enemyXL = 0x800;
+ break;
+ case 2:
+ bul->enemyYL = 0x800;
+ break;
+ case 3:
+ bul->enemyXL = 0x800;
+ break;
}
- else
- {
- bul->rect.left = 176;
- bul->rect.top = 32;
- bul->rect.right = 192;
- bul->rect.bottom = 48;
-
- }
break;
- case 3:
- if (bul->direct != 1 && bul->direct != 3)
- {
- bul->rect.left = 128;
- bul->rect.top = 48;
- bul->rect.right = 144;
- bul->rect.bottom = 64;
- }
- else
- {
- bul->rect.left = 144;
- bul->rect.top = 48;
- bul->rect.right = 160;
- bul->rect.bottom = 64;
- }
- break;
}
}
+ else
+ {
+ //Move
+ bul->x += bul->xm;
+ bul->y += bul->ym;
+ }
+
+ SET_RECT(rect1[0], 128, 32, 144, 48)
+ SET_RECT(rect1[1], 144, 32, 160, 48)
+
+ SET_RECT(rect2[0], 160, 32, 176, 48)
+ SET_RECT(rect2[1], 176, 32, 192, 48)
+
+ SET_RECT(rect3[0], 128, 48, 144, 64)
+ SET_RECT(rect3[1], 144, 48, 160, 64)
+
+ //Set framerect
+ switch (level)
+ {
+ case 1:
+ if (bul->direct == 1 || bul->direct == 3)
+ bul->rect = rect1[1];
+ else
+ bul->rect = rect1[0];
+
+ break;
+ case 2:
+ if (bul->direct == 1 || bul->direct == 3)
+ bul->rect = rect2[1];
+ else
+ bul->rect = rect2[0];
+
+ break;
+ case 3:
+ if (bul->direct == 1 || bul->direct == 3)
+ bul->rect = rect3[1];
+ else
+ bul->rect = rect3[0];
+
+ break;
+ }
}
- else
- {
- bul->cond = 0;
- SetCaret(bul->x, bul->y, 3, 0);
- }
}
void ActBullet_FireBall(BULLET *bul, int level)
{
- if (++bul->count1 <= bul->life_count)
+ BOOL bBreak;
+ RECT rect_left1[4];
+ RECT rect_right1[4];
+ RECT rect_left2[3];
+ RECT rect_right2[3];
+
+ if (++bul->count1 > bul->life_count)
{
- bool bBreak = false;
+ bul->cond = 0;
+ SetCaret(bul->x, bul->y, 3, 0);
+ }
+ else
+ {
+ bBreak = FALSE;
if (bul->flag & 2 && bul->flag & 8)
- bBreak = true;
+ bBreak = TRUE;
if (bul->flag & 1 && bul->flag & 4)
- bBreak = true;
+ bBreak = TRUE;
if (!bul->direct && bul->flag & 1)
bul->direct = 2;
@@ -521,27 +521,8 @@
}
else
{
- if (bul->act_no)
+ if (bul->act_no == 0)
{
- if (bul->flag & 8)
- bul->ym = -0x400;
- else if (bul->flag & 1)
- bul->xm = 0x400;
- else if (bul->flag & 4)
- bul->xm = -0x400;
-
- bul->ym += 85;
- if (bul->ym >= 0x400)
- bul->ym = 0x400;
-
- bul->x += bul->xm;
- bul->y += bul->ym;
-
- if (bul->flag & 0xD)
- PlaySoundObject(34, 1);
- }
- else
- {
bul->act_no = 1;
switch (bul->direct)
@@ -552,15 +533,15 @@
case 1:
bul->xm = gMC.xm;
- if (gMC.xm >= 0)
- bul->direct = 2;
- else
+ if (gMC.xm < 0)
bul->direct = 0;
-
- if (gMC.direct)
- bul->xm += 0x80;
else
+ bul->direct = 2;
+
+ if (gMC.direct == 0)
bul->xm -= 0x80;
+ else
+ bul->xm += 0x80;
bul->ym = -0x5FF;
break;
@@ -569,40 +550,54 @@
break;
case 3:
bul->xm = gMC.xm;
- if (gMC.xm >= 0)
- bul->direct = 2;
- else
+
+ if (gMC.xm < 0)
bul->direct = 0;
+ else
+ bul->direct = 2;
+
bul->ym = 0x5FF;
+
break;
}
}
+ else
+ {
+ if (bul->flag & 8)
+ bul->ym = -0x400;
+ else if (bul->flag & 1)
+ bul->xm = 0x400;
+ else if (bul->flag & 4)
+ bul->xm = -0x400;
+
+ bul->ym += 85;
+ if (bul->ym > 0x3FF)
+ bul->ym = 0x3FF;
+
+ bul->x += bul->xm;
+ bul->y += bul->ym;
+
+ if (bul->flag & 0xD)
+ PlaySoundObject(34, 1);
+ }
- RECT rect_left1[4] = {
- {128, 0, 144, 16},
- {144, 0, 160, 16},
- {160, 0, 176, 16},
- {176, 0, 192, 16},
- };
+ SET_RECT(rect_left1[0], 128, 0, 144, 16)
+ SET_RECT(rect_left1[1], 144, 0, 160, 16)
+ SET_RECT(rect_left1[2], 160, 0, 176, 16)
+ SET_RECT(rect_left1[3], 176, 0, 192, 16)
- RECT rect_right1[4] = {
- {128, 16, 144, 32},
- {144, 16, 160, 32},
- {160, 16, 176, 32},
- {176, 16, 192, 32},
- };
+ SET_RECT(rect_right1[0], 128, 16, 144, 32)
+ SET_RECT(rect_right1[1], 144, 16, 160, 32)
+ SET_RECT(rect_right1[2], 160, 16, 176, 32)
+ SET_RECT(rect_right1[3], 176, 16, 192, 32)
- RECT rect_left2[3] = {
- {192, 16, 208, 32},
- {208, 16, 224, 32},
- {224, 16, 240, 32},
- };
+ SET_RECT(rect_left2[0], 192, 16, 208, 32)
+ SET_RECT(rect_left2[1], 208, 16, 224, 32)
+ SET_RECT(rect_left2[2], 224, 16, 240, 32)
- RECT rect_right2[3] = {
- {224, 16, 240, 32},
- {208, 16, 224, 32},
- {192, 16, 208, 32},
- };
+ SET_RECT(rect_right2[0], 224, 16, 240, 32)
+ SET_RECT(rect_right2[1], 208, 16, 224, 32)
+ SET_RECT(rect_right2[2], 192, 16, 208, 32)
bul->ani_no++;
@@ -611,10 +606,10 @@
if (bul->ani_no > 3)
bul->ani_no = 0;
- if (bul->direct)
- bul->rect = rect_right1[bul->ani_no];
- else
+ if (bul->direct == 0)
bul->rect = rect_left1[bul->ani_no];
+ else
+ bul->rect = rect_right1[bul->ani_no];
}
else
{
@@ -621,10 +616,10 @@
if (bul->ani_no > 2)
bul->ani_no = 0;
- if (bul->direct)
- bul->rect = rect_right2[bul->ani_no];
- else
+ if (bul->direct == 0)
bul->rect = rect_left2[bul->ani_no];
+ else
+ bul->rect = rect_right2[bul->ani_no];
if (level == 2)
SetNpChar(129, bul->x, bul->y, 0, -0x200, bul->ani_no, 0, 0x100);
@@ -633,15 +628,12 @@
}
}
}
- else
- {
- bul->cond = 0;
- SetCaret(bul->x, bul->y, 3, 0);
- }
}
void ActBullet_MachineGun(BULLET *bul, int level)
{
+ int move;
+
RECT rect1[4] = {
{64, 0, 80, 16},
{80, 0, 96, 16},
@@ -670,32 +662,8 @@
}
else
{
- if (bul->act_no)
+ if (bul->act_no == 0)
{
- bul->x += bul->xm;
- bul->y += bul->ym;
-
- switch ( level )
- {
- case 1:
- bul->rect = rect1[bul->direct];
- break;
- case 2:
- bul->rect = rect2[bul->direct];
- if (bul->direct != 1 && bul->direct != 3)
- SetNpChar(127, bul->x, bul->y, 0, 0, 0, 0, 256);
- else
- SetNpChar(127, bul->x, bul->y, 0, 0, 1, 0, 256);
- break;
- case 3:
- bul->rect = rect3[bul->direct];
- SetNpChar(128, bul->x, bul->y, 0, 0, bul->direct, 0, 256);
- break;
- }
- }
- else
- {
- int move;
switch (level)
{
case 1:
@@ -718,8 +686,8 @@
bul->ym = Random(-0xAA, 0xAA);
break;
case 1:
- bul->xm = Random(-0xAA, 0xAA);
bul->ym = -move;
+ bul->xm = Random(-0xAA, 0xAA);
break;
case 2:
bul->xm = move;
@@ -726,16 +694,43 @@
bul->ym = Random(-0xAA, 0xAA);
break;
case 3:
- bul->xm = Random(-0xAA, 0xAA);
bul->ym = move;
+ bul->xm = Random(-0xAA, 0xAA);
break;
}
}
+ else
+ {
+ bul->x += bul->xm;
+ bul->y += bul->ym;
+
+ switch (level)
+ {
+ case 1:
+ bul->rect = rect1[bul->direct];
+ break;
+ case 2:
+ bul->rect = rect2[bul->direct];
+
+ if (bul->direct == 1 || bul->direct == 3)
+ SetNpChar(127, bul->x, bul->y, 0, 0, 1, 0, 256);
+ else
+ SetNpChar(127, bul->x, bul->y, 0, 0, 0, 0, 256);
+
+ break;
+ case 3:
+ bul->rect = rect3[bul->direct];
+ SetNpChar(128, bul->x, bul->y, 0, 0, bul->direct, 0, 256);
+ break;
+ }
+ }
}
}
void ActBullet_Missile(BULLET *bul, int level)
{
+ BOOL bHit;
+
if (++bul->count1 > bul->life_count)
{
bul->cond = 0;
@@ -743,26 +738,26 @@
return;
}
- bool bHit = false;
+ bHit = FALSE;
if (bul->life != 10)
- bHit = true;
+ bHit = TRUE;
if (bul->direct == 0 && bul->flag & 1)
- bHit = true;
+ bHit = TRUE;
if (bul->direct == 2 && bul->flag & 4)
- bHit = true;
+ bHit = TRUE;
if (bul->direct == 1 && bul->flag & 2)
- bHit = true;
+ bHit = TRUE;
if (bul->direct == 3 && bul->flag & 8)
- bHit = true;
+ bHit = TRUE;
if (bul->direct == 0 && bul->flag & 0x80)
- bHit = true;
+ bHit = TRUE;
if (bul->direct == 0 && bul->flag & 0x20)
- bHit = true;
+ bHit = TRUE;
if (bul->direct == 2 && bul->flag & 0x40)
- bHit = true;
+ bHit = TRUE;
if (bul->direct == 2 && bul->flag & 0x10)
- bHit = true;
+ bHit = TRUE;
if (bHit)
{
@@ -793,7 +788,7 @@
{
case 0:
case 2:
- if (gMC.y < bul->y)
+ if (bul->y > gMC.y)
bul->ym = 0x100;
else
bul->ym = -0x100;
@@ -803,7 +798,7 @@
case 1:
case 3:
- if (gMC.x < bul->x)
+ if (bul->x > gMC.x)
bul->xm = 0x100;
else
bul->xm = -0x100;
@@ -836,10 +831,10 @@
switch (bul->direct)
{
case 0:
- bul->xm -= bul->ani_no;
+ bul->xm += -bul->ani_no;
break;
case 1:
- bul->ym -= bul->ani_no;
+ bul->ym += -bul->ani_no;
break;
case 2:
bul->xm += bul->ani_no;
@@ -855,7 +850,7 @@
{
case 0:
case 2:
- if (bul->tgt_y > bul->y)
+ if (bul->y < bul->tgt_y)
bul->ym += 0x20;
else
bul->ym -= 0x20;
@@ -864,7 +859,7 @@
case 1:
case 3:
- if (bul->tgt_x > bul->x)
+ if (bul->x < bul->tgt_x)
bul->xm += 0x20;
else
bul->xm -= 0x20;
@@ -951,8 +946,11 @@
case 0:
bul->act_no = 1;
- switch ( level )
+ switch (level)
{
+ case 1:
+ bul->act_wait = 10;
+ break;
case 2:
bul->act_wait = 15;
break;
@@ -959,57 +957,39 @@
case 3:
bul->act_wait = 5;
break;
- case 1:
- bul->act_wait = 10;
- break;
}
PlaySoundObject(44, 1);
// Fallthrough
case 1:
- if (level == 1)
+ switch (level)
{
- if (!(bul->act_wait % 3))
- SetDestroyNpCharUp(bul->x + (Random(-16, 16) << 9), bul->y + (Random(-16, 16) << 9), bul->enemyXL, 2);
+ case 1:
+ if (bul->act_wait % 3 == 0)
+ SetDestroyNpCharUp(bul->x + (Random(-16, 16) << 9), bul->y + (Random(-16, 16) << 9), bul->enemyXL, 2);
+ break;
+
+ case 2:
+ if (bul->act_wait % 3 == 0)
+ SetDestroyNpCharUp(bul->x + (Random(-32, 32) << 9), bul->y + (Random(-32, 32) << 9), bul->enemyXL, 2);
+ break;
+
+ case 3:
+ if (bul->act_wait % 3 == 0)
+ SetDestroyNpCharUp(bul->x + (Random(-40, 40) << 9), bul->y + (Random(-40, 40) << 9), bul->enemyXL, 2);
+ break;
}
- else if (level == 2)
- {
- if (!(bul->act_wait % 3))
- SetDestroyNpCharUp(bul->x + (Random(-32, 32) << 9), bul->y + (Random(-32, 32) << 9), bul->enemyXL, 2);
- }
- else if (level == 3)
- {
- if (!(bul->act_wait % 3))
- SetDestroyNpCharUp(bul->x + (Random(-40, 40) << 9), bul->y + (Random(-40, 40) << 9), bul->enemyXL, 2);
- }
if (--bul->act_wait < 0)
bul->cond = 0;
break;
}
-
- if (level == 1)
- {
- if (bul->act_wait % 3 == 0)
- SetDestroyNpCharUp(bul->x + (Random(-16, 16) * 0x200), bul->y + (Random(-16, 16) * 0x200), bul->enemyXL, 2);
- }
- else if (level == 2)
- {
- if (bul->act_wait % 3 == 0)
- SetDestroyNpCharUp(bul->x + (Random(-32, 32) * 0x200), bul->y + (Random(-32, 32) * 0x200), bul->enemyXL, 2);
- }
- else if (level == 3)
- {
- if (bul->act_wait % 3 == 0)
- SetDestroyNpCharUp(bul->x + (Random(-40, 40) * 0x200), bul->y + (Random(-40, 40) * 0x200), bul->enemyXL, 2);
- }
-
- if (--bul->act_wait < 0)
- bul->cond = 0;
}
void ActBullet_Bubblin1(BULLET *bul)
{
+ RECT rect[4];
+
if (bul->flag & 0x2FF)
{
bul->cond = 0;
@@ -1017,25 +997,28 @@
}
else
{
- if (bul->act_no == 0)
+ switch (bul->act_no)
{
- bul->act_no = 1;
+ case 0:
+ bul->act_no = 1;
- switch (bul->direct)
- {
- case 0:
- bul->xm = -0x600;
- break;
- case 2:
- bul->xm = 0x600;
- break;
- case 1:
- bul->ym = -0x600;
- break;
- case 3:
- bul->ym = 0x600;
- break;
- }
+ switch (bul->direct)
+ {
+ case 0:
+ bul->xm = -0x600;
+ break;
+ case 2:
+ bul->xm = 0x600;
+ break;
+ case 1:
+ bul->ym = -0x600;
+ break;
+ case 3:
+ bul->ym = 0x600;
+ break;
+ }
+
+ break;
}
switch (bul->direct)
@@ -1063,12 +1046,10 @@
SetCaret(bul->x, bul->y, 15, 0);
}
- RECT rect[4] = {
- {192, 0, 200, 8},
- {200, 0, 208, 8},
- {208, 0, 216, 8},
- {216, 0, 224, 8},
- };
+ SET_RECT(rect[0], 192, 0, 200, 8)
+ SET_RECT(rect[1], 200, 0, 208, 8)
+ SET_RECT(rect[2], 208, 0, 216, 8)
+ SET_RECT(rect[3], 216, 0, 224, 8)
if (++bul->ani_wait > 3)
{
@@ -1085,16 +1066,19 @@
void ActBullet_Bubblin2(BULLET *bul)
{
- bool bDelete = false;
+ BOOL bDelete;
+ RECT rect[4];
+ bDelete = FALSE;
+
if (bul->direct == 0 && bul->flag & 1)
- bDelete = true;
+ bDelete = TRUE;
if (bul->direct == 2 && bul->flag & 4)
- bDelete = true;
+ bDelete = TRUE;
if (bul->direct == 1 && bul->flag & 2)
- bDelete = true;
+ bDelete = TRUE;
if (bul->direct == 3 && bul->flag & 8)
- bDelete = true;
+ bDelete = TRUE;
if (bDelete)
{
@@ -1103,29 +1087,32 @@
}
else
{
- if (bul->act_no == 0)
+ switch (bul->act_no)
{
- bul->act_no = 1;
+ case 0:
+ bul->act_no = 1;
- switch (bul->direct)
- {
- case 0:
- bul->xm = -0x600;
- bul->ym = Random(-0x100, 0x100);
- break;
- case 2:
- bul->xm = 0x600;
- bul->ym = Random(-0x100, 0x100);
- break;
- case 1:
- bul->ym = -0x600;
- bul->xm = Random(-0x100, 0x100);
- break;
- case 3:
- bul->ym = 0x600;
- bul->xm = Random(-0x100, 0x100);
- break;
- }
+ switch (bul->direct)
+ {
+ case 0:
+ bul->xm = -0x600;
+ bul->ym = Random(-0x100, 0x100);
+ break;
+ case 2:
+ bul->xm = 0x600;
+ bul->ym = Random(-0x100, 0x100);
+ break;
+ case 1:
+ bul->ym = -0x600;
+ bul->xm = Random(-0x100, 0x100);
+ break;
+ case 3:
+ bul->ym = 0x600;
+ bul->xm = Random(-0x100, 0x100);
+ break;
+ }
+
+ break;
}
switch (bul->direct)
@@ -1153,12 +1140,10 @@
SetCaret(bul->x, bul->y, 15, 0);
}
- RECT rect[4] = {
- {192, 8, 200, 16},
- {200, 8, 208, 16},
- {208, 8, 216, 16},
- {216, 8, 224, 16},
- };
+ SET_RECT(rect[0], 192, 8, 200, 16)
+ SET_RECT(rect[1], 200, 8, 208, 16)
+ SET_RECT(rect[2], 208, 8, 216, 16)
+ SET_RECT(rect[3], 216, 8, 224, 16)
if (++bul->ani_wait > 3)
{
@@ -1175,41 +1160,57 @@
void ActBullet_Bubblin3(BULLET *bul)
{
- if (++bul->act_wait <= 100 && gKey & gKeyShot)
+ if (++bul->act_wait > 100 || !(gKey & gKeyShot))
{
- if (bul->act_no == 0)
+ bul->cond = 0;
+ SetCaret(bul->x, bul->y, 2, 0);
+ PlaySoundObject(100, 1);
+
+ if (gMC.up)
+ SetBullet(22, bul->x, bul->y, 1);
+ else if (gMC.down)
+ SetBullet(22, bul->x, bul->y, 3);
+ else
+ SetBullet(22, bul->x, bul->y, gMC.direct);
+ }
+ else
+ {
+ switch (bul->act_no)
{
- bul->act_no = 1;
+ case 0:
+ bul->act_no = 1;
- switch (bul->direct)
- {
- case 0:
- bul->xm = Random(-0x400, -0x200);
- bul->ym = (Random(-4, 4) * 0x200) / 2;
- break;
- case 2u:
- bul->xm = Random(0x200, 0x400);
- bul->ym = (Random(-4, 4) * 0x200) / 2;
- break;
- case 1u:
- bul->ym = Random(-0x400, -0x200);
- bul->xm = (Random(-4, 4) * 0x200) / 2;
- break;
- case 3u:
- bul->ym = Random(0x80, 0x100);
- bul->xm = (Random(-4, 4) * 0x200) / 2;
- break;
- }
+ switch (bul->direct)
+ {
+ case 0:
+ bul->xm = Random(-0x400, -0x200);
+ bul->ym = (Random(-4, 4) * 0x200) / 2;
+ break;
+ case 2:
+ bul->xm = Random(0x200, 0x400);
+ bul->ym = (Random(-4, 4) * 0x200) / 2;
+ break;
+ case 1:
+ bul->ym = Random(-0x400, -0x200);
+ bul->xm = (Random(-4, 4) * 0x200) / 2;
+ break;
+ case 3:
+ bul->ym = Random(0x80, 0x100);
+ bul->xm = (Random(-4, 4) * 0x200) / 2;
+ break;
+ }
+
+ break;
}
- if (gMC.x > bul->x)
+ if (bul->x < gMC.x)
bul->xm += 0x20;
- if (gMC.x < bul->x)
+ if (bul->x > gMC.x)
bul->xm -= 0x20;
- if (gMC.y > bul->y)
+ if (bul->y < gMC.y)
bul->ym += 0x20;
- if (gMC.y < bul->y)
+ if (bul->y > gMC.y)
bul->ym -= 0x20;
if (bul->xm < 0 && bul->flag & 1)
@@ -1243,19 +1244,6 @@
bul->rect = rect[bul->ani_no];
}
- else
- {
- bul->cond = 0;
- SetCaret(bul->x, bul->y, 2, 0);
- PlaySoundObject(100, 1);
-
- if (gMC.up)
- SetBullet(22, bul->x, bul->y, 1);
- else if (gMC.down)
- SetBullet(22, bul->x, bul->y, 3);
- else
- SetBullet(22, bul->x, bul->y, gMC.direct);
- }
}
void ActBullet_Spine(BULLET *bul)
@@ -1267,22 +1255,17 @@
}
else
{
- if (bul->act_no)
+ if (bul->act_no == 0)
{
- bul->x += bul->xm;
- bul->y += bul->ym;
- }
- else
- {
bul->act_no = 1;
switch (bul->direct)
{
case 0:
- bul->xm = (-0x200 * Random(10, 16)) / 2;
+ bul->xm = (-Random(10, 16) * 0x200) / 2;
break;
case 1:
- bul->ym = (-0x200 * Random(10, 16)) / 2;
+ bul->ym = (-Random(10, 16) * 0x200) / 2;
break;
case 2:
bul->xm = (Random(10, 16) * 0x200) / 2;
@@ -1292,6 +1275,11 @@
break;
}
}
+ else
+ {
+ bul->x += bul->xm;
+ bul->y += bul->ym;
+ }
if (++bul->ani_wait > 1)
{
@@ -1350,13 +1338,8 @@
if (bul->count1 % 5 == 1)
PlaySoundObject(34, 1);
- if (bul->act_no)
+ if (bul->act_no == 0)
{
- bul->x += bul->xm;
- bul->y += bul->ym;
- }
- else
- {
bul->act_no = 1;
switch (bul->direct)
@@ -1375,6 +1358,11 @@
break;
}
}
+ else
+ {
+ bul->x += bul->xm;
+ bul->y += bul->ym;
+ }
RECT rcLeft[4] = {
{0, 48, 16, 64},
@@ -1421,13 +1409,8 @@
if (bul->count1 % 7 == 1)
PlaySoundObject(106, 1);
- if (bul->act_no)
+ if (bul->act_no == 0)
{
- bul->x += bul->xm;
- bul->y += bul->ym;
- }
- else
- {
bul->act_no = 1;
switch (bul->direct)
@@ -1446,6 +1429,11 @@
break;
}
}
+ else
+ {
+ bul->x += bul->xm;
+ bul->y += bul->ym;
+ }
RECT rcLeft[4] = {
{160, 48, 184, 72},
@@ -1541,8 +1529,8 @@
SetBullet(23, bul->x, bul->y, 2);
}
- if ( ++bul->count1 == 5 )
- bul->bbits &= ~4u;
+ if (++bul->count1 == 5)
+ bul->bbits &= ~4;
if (bul->count1 > bul->life_count)
{
@@ -1657,16 +1645,18 @@
void ActBullet_Drop(BULLET *bul)
{
- RECT rc[1] = {0, 0, 0, 0};
+ RECT rc = {0, 0, 0, 0};
if (++bul->act_wait > 2)
bul->cond = 0;
- bul->rect = rc[0];
+ bul->rect = rc;
}
void ActBullet_SuperMissile(BULLET *bul, int level)
{
+ BOOL bHit;
+
if (++bul->count1 > bul->life_count)
{
bul->cond = 0;
@@ -1674,26 +1664,26 @@
return;
}
- bool bHit = false;
+ bHit = FALSE;
if (bul->life != 10)
- bHit = true;
+ bHit = TRUE;
if (bul->direct == 0 && bul->flag & 1)
- bHit = true;
+ bHit = TRUE;
if (bul->direct == 2 && bul->flag & 4)
- bHit = true;
+ bHit = TRUE;
if (bul->direct == 1 && bul->flag & 2)
- bHit = true;
+ bHit = TRUE;
if (bul->direct == 3 && bul->flag & 8)
- bHit = true;
+ bHit = TRUE;
if (bul->direct == 0 && bul->flag & 0x80)
- bHit = true;
+ bHit = TRUE;
if (bul->direct == 0 && bul->flag & 0x20)
- bHit = true;
+ bHit = TRUE;
if (bul->direct == 2 && bul->flag & 0x40)
- bHit = true;
+ bHit = TRUE;
if (bul->direct == 2 && bul->flag & 0x10)
- bHit = true;
+ bHit = TRUE;
if (bHit)
{
@@ -1729,7 +1719,7 @@
{
case 0:
case 2:
- if (gMC.y < bul->y)
+ if (bul->y > gMC.y)
bul->ym = 0x100;
else
bul->ym = -0x100;
@@ -1739,7 +1729,7 @@
case 1:
case 3:
- if (gMC.x < bul->x)
+ if (bul->x > gMC.x)
bul->xm = 0x100;
else
bul->xm = -0x100;
@@ -1772,10 +1762,10 @@
switch (bul->direct)
{
case 0:
- bul->xm -= bul->ani_no;
+ bul->xm += -bul->ani_no;
break;
case 1:
- bul->ym -= bul->ani_no;
+ bul->ym += -bul->ani_no;
break;
case 2:
bul->xm += bul->ani_no;
@@ -1791,7 +1781,7 @@
{
case 0:
case 2:
- if (bul->tgt_y > bul->y)
+ if (bul->y < bul->tgt_y)
bul->ym += 0x40;
else
bul->ym -= 0x40;
@@ -1799,7 +1789,7 @@
break;
case 1:
case 3:
- if (bul->tgt_x > bul->x)
+ if (bul->x < bul->tgt_x)
bul->xm += 0x40;
else
bul->xm -= 0x40;
@@ -1896,21 +1886,21 @@
PlaySoundObject(44, 1);
// Fallthrough
case 1:
- if (level == 1)
+ switch (level)
{
- if (bul->act_wait % 3 == 0)
- SetDestroyNpCharUp(bul->x + (Random(-16, 16) * 0x200), bul->y + (Random(-16, 16) * 0x200), bul->enemyXL, 2);
+ case 1:
+ if (bul->act_wait % 3 == 0)
+ SetDestroyNpCharUp(bul->x + (Random(-16, 16) * 0x200), bul->y + (Random(-16, 16) * 0x200), bul->enemyXL, 2);
+ break;
+ case 2:
+ if (bul->act_wait % 3 == 0)
+ SetDestroyNpCharUp(bul->x + (Random(-32, 32) * 0x200), bul->y + (Random(-32, 32) * 0x200), bul->enemyXL, 2);
+ break;
+ case 3:
+ if (bul->act_wait % 3 == 0)
+ SetDestroyNpCharUp(bul->x + (Random(-40, 40) * 0x200), bul->y + (Random(-40, 40) * 0x200), bul->enemyXL, 2);
+ break;
}
- else if (level == 2)
- {
- if (bul->act_wait % 3 == 0)
- SetDestroyNpCharUp(bul->x + (Random(-32, 32) * 0x200), bul->y + (Random(-32, 32) * 0x200), bul->enemyXL, 2);
- }
- else if (level == 3)
- {
- if (bul->act_wait % 3 == 0)
- SetDestroyNpCharUp(bul->x + (Random(-40, 40) * 0x200), bul->y + (Random(-40, 40) * 0x200), bul->enemyXL, 2);
- }
if (--bul->act_wait < 0)
bul->cond = 0;
@@ -1928,32 +1918,8 @@
}
else
{
- if (bul->act_no)
+ if (bul->act_no == 0)
{
- if (level == 1 && bul->count1 % 4 == 1)
- {
- switch (bul->direct)
- {
- case 0:
- SetNpChar(4, bul->x, bul->y, -0x200, Random(-0x200, 0x200), 2, 0, 0x100);
- break;
- case 1:
- SetNpChar(4, bul->x, bul->y, Random(-0x200, 0x200), -0x200, 2, 0, 0x100);
- break;
- case 2:
- SetNpChar(4, bul->x, bul->y, 0x200, Random(-0x200, 0x200), 2, 0, 0x100);
- break;
- case 3:
- SetNpChar(4, bul->x, bul->y, Random(-0x200, 0x200), 0x200, 2, 0, 0x100);
- break;
- }
- }
-
- bul->x += bul->xm;
- bul->y += bul->ym;
- }
- else
- {
bul->act_no = 1;
bul->count1 = 0;
@@ -1973,13 +1939,39 @@
break;
}
- if (level == 3)
+ switch (level)
{
- bul->xm /= 3;
- bul->ym /= 3;
+ case 3:
+ bul->xm /= 3;
+ bul->ym /= 3;
+ break;
}
}
+ else
+ {
+ if (level == 1 && bul->count1 % 4 == 1)
+ {
+ switch (bul->direct)
+ {
+ case 0:
+ SetNpChar(4, bul->x, bul->y, -0x200, Random(-0x200, 0x200), 2, 0, 0x100);
+ break;
+ case 1:
+ SetNpChar(4, bul->x, bul->y, Random(-0x200, 0x200), -0x200, 2, 0, 0x100);
+ break;
+ case 2:
+ SetNpChar(4, bul->x, bul->y, 0x200, Random(-0x200, 0x200), 2, 0, 0x100);
+ break;
+ case 3:
+ SetNpChar(4, bul->x, bul->y, Random(-0x200, 0x200), 0x200, 2, 0, 0x100);
+ break;
+ }
+ }
+ bul->x += bul->xm;
+ bul->y += bul->ym;
+ }
+
if (++bul->ani_no > 1)
bul->ani_no = 0;
@@ -2038,13 +2030,8 @@
if (bul->damage && bul->life != 100)
bul->damage = 0;
- if (bul->act_no)
+ if (bul->act_no == 0)
{
- bul->x += bul->xm;
- bul->y += bul->ym;
- }
- else
- {
bul->act_no = 1;
switch (bul->direct)
@@ -2063,43 +2050,52 @@
break;
}
- if (level == 1)
+ switch (level)
{
- switch (bul->direct)
- {
- case 0:
- bul->enemyYL = 0x400;
- break;
- case 1:
- bul->enemyXL = 0x400;
- break;
- case 2:
- bul->enemyYL = 0x400;
- break;
- case 3:
- bul->enemyXL = 0x400;
- break;
- }
+ case 1:
+ switch (bul->direct)
+ {
+ case 0:
+ bul->enemyYL = 0x400;
+ break;
+ case 1:
+ bul->enemyXL = 0x400;
+ break;
+ case 2:
+ bul->enemyYL = 0x400;
+ break;
+ case 3:
+ bul->enemyXL = 0x400;
+ break;
+ }
+
+ break;
+
+ case 2:
+ switch (bul->direct)
+ {
+ case 0:
+ bul->enemyYL = 0x800;
+ break;
+ case 1:
+ bul->enemyXL = 0x800;
+ break;
+ case 2:
+ bul->enemyYL = 0x800;
+ break;
+ case 3:
+ bul->enemyXL = 0x800;
+ break;
+ }
+
+ break;
}
- else if (level == 2)
- {
- switch (bul->direct)
- {
- case 0:
- bul->enemyYL = 0x800;
- break;
- case 1:
- bul->enemyXL = 0x800;
- break;
- case 2:
- bul->enemyYL = 0x800;
- break;
- case 3:
- bul->enemyXL = 0x800;
- break;
- }
- }
}
+ else
+ {
+ bul->x += bul->xm;
+ bul->y += bul->ym;
+ }
RECT rect1[2] = {
{128, 32, 144, 48},
@@ -2248,8 +2244,13 @@
{
if (gBul[i].cond & 0x80)
{
- if (gBul[i].life > 0)
+ if (gBul[i].life < 1)
{
+ gBul[i].cond = 0;
+ continue;
+ }
+ else
+ {
switch (gBul[i].code_bullet)
{
case 1:
@@ -2387,13 +2388,7 @@
case 45:
ActBullet_Star(&gBul[i]);
break;
- default:
- continue;
}
- }
- else
- {
- gBul[i].cond = 0;
}
}
}
--- a/src/Caret.cpp
+++ b/src/Caret.cpp
@@ -34,7 +34,7 @@
{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 @@
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 @@
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 @@
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 @@
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 @@
++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 @@
{0, 0, 0, 0},
};
- if (!crt->act_no)
+ if (crt->act_no == 0)
{
crt->act_no = 1;
@@ -363,10 +375,12 @@
}
}
- 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 @@
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 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;
}
--- a/src/Ending.cpp
+++ b/src/Ending.cpp
@@ -59,7 +59,7 @@
}
//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++)
{
--- a/src/Ending.h
+++ b/src/Ending.h
@@ -37,7 +37,7 @@
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();
--- a/src/Fade.cpp
+++ b/src/Fade.cpp
@@ -16,9 +16,9 @@
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 @@
gFade.mode = 0;
}
-void StartFadeOut(char dir)
+void StartFadeOut(signed char dir)
{
gFade.mode = 2;
gFade.count = 0;
@@ -58,7 +58,7 @@
}
}
-void StartFadeIn(char dir)
+void StartFadeIn(signed char dir)
{
int x;
int y;
--- a/src/Fade.h
+++ b/src/Fade.h
@@ -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();
--- a/src/MycParam.cpp
+++ b/src/MycParam.cpp
@@ -2,6 +2,8 @@
#include "SDL.h"
+#include "WindowsWrapper.h"
+
#include "ArmsItem.h"
#include "CommonDefines.h"
#include "Caret.h"
@@ -92,7 +94,7 @@
gArmsData[gSelectedArms].exp = 0;
}
-bool IsMaxExpMyChar()
+BOOL IsMaxExpMyChar()
{
return gArmsData[gSelectedArms].level == 3
&& gArmsData[gSelectedArms].exp >= gArmsLevelTable[gArmsData[gSelectedArms].code].exp[2];
--- a/src/MycParam.h
+++ b/src/MycParam.h
@@ -2,6 +2,8 @@
#include <stdint.h>
+#include "WindowsWrapper.h"
+
struct ARMS_LEVEL
{
int exp[3];
@@ -17,7 +19,7 @@
void AddExpMyChar(int x);
void ZeroExpMyChar();
-bool IsMaxExpMyChar();
+BOOL IsMaxExpMyChar();
void DamageMyChar(int damage);
void ZeroArmsEnergy_All();
void AddBulletMyChar(int no, int val);
--- a/src/NpChar.cpp
+++ b/src/NpChar.cpp
@@ -53,7 +53,7 @@
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);
--- a/src/NpChar.h
+++ b/src/NpChar.h
@@ -83,7 +83,7 @@
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);
--- a/src/Organya.cpp
+++ b/src/Organya.cpp
@@ -303,7 +303,7 @@
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)
{
--- a/src/PixTone.cpp
+++ b/src/PixTone.cpp
@@ -56,7 +56,7 @@
// 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)
--- a/src/Profile.cpp
+++ b/src/Profile.cpp
@@ -40,7 +40,7 @@
return true;
}
-bool SaveProfile(char *name)
+bool SaveProfile(const char *name)
{
//Get path
char path[PATH_LENGTH];
@@ -119,7 +119,7 @@
return true;
}
-bool LoadProfile(char *name)
+bool LoadProfile(const char *name)
{
//Get path
char path[PATH_LENGTH];
--- a/src/Profile.h
+++ b/src/Profile.h
@@ -25,12 +25,12 @@
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();
--- a/src/Shoot.cpp
+++ b/src/Shoot.cpp
@@ -28,7 +28,10 @@
break;
}
- if (CountArmsBullet(1) <= 3 && gKeyTrg & gKeyShot)
+ if (CountArmsBullet(1) > 3)
+ return;
+
+ if (gKeyTrg & gKeyShot)
{
if (!UseArmsEnergy(1))
{
@@ -86,18 +89,21 @@
int bul_no;
switch (level)
{
- case 2:
- bul_no = 5;
- break;
- case 3:
- bul_no = 6;
- break;
- case 1:
- bul_no = 4;
- break;
+ case 1:
+ bul_no = 4;
+ break;
+ case 2:
+ bul_no = 5;
+ break;
+ case 3:
+ bul_no = 6;
+ break;
}
- if (CountArmsBullet(2) < 2 && gKeyTrg & gKeyShot)
+ if (CountArmsBullet(2) > 1)
+ return;
+
+ if (gKeyTrg & gKeyShot)
{
if (!UseArmsEnergy(1))
{
@@ -107,41 +113,41 @@
{
if (gMC.up)
{
- if (gMC.direct)
+ if (gMC.direct == 0)
{
- SetBullet(bul_no, gMC.x + 0x200, gMC.y - 0x1000, 1);
- SetCaret(gMC.x + 0x200, gMC.y - 0x1000, 3, 0);
+ SetBullet(bul_no, gMC.x - 0x200, gMC.y - 0x1000, 1);
+ SetCaret(gMC.x - 0x200, gMC.y - 0x1000, 3, 0);
}
else
{
- SetBullet(bul_no, gMC.x - 0x200, gMC.y - 0x1000, 1);
- SetCaret(gMC.x - 0x200, gMC.y - 0x1000, 3, 0);
+ SetBullet(bul_no, gMC.x + 0x200, gMC.y - 0x1000, 1);
+ SetCaret(gMC.x + 0x200, gMC.y - 0x1000, 3, 0);
}
}
else if (gMC.down)
{
- if (gMC.direct)
+ if (gMC.direct == 0)
{
- SetBullet(bul_no, gMC.x + 0x200, gMC.y + 0x1000, 3);
- SetCaret(gMC.x + 0x200, gMC.y + 0x1000, 3, 0);
+ SetBullet(bul_no, gMC.x - 0x200, gMC.y + 0x1000, 3);
+ SetCaret(gMC.x - 0x200, gMC.y + 0x1000, 3, 0);
}
else
{
- SetBullet(bul_no, gMC.x - 0x200, gMC.y + 0x1000, 3);
- SetCaret(gMC.x - 0x200, gMC.y + 0x1000, 3, 0);
+ SetBullet(bul_no, gMC.x + 0x200, gMC.y + 0x1000, 3);
+ SetCaret(gMC.x + 0x200, gMC.y + 0x1000, 3, 0);
}
}
else
{
- if (gMC.direct)
+ if (gMC.direct == 0)
{
- SetBullet(bul_no, gMC.x + 0xC00, gMC.y + 0x600, 2);
- SetCaret(gMC.x + 0x1800, gMC.y + 0x600, 3, 0);
+ SetBullet(bul_no, gMC.x - 0xC00, gMC.y + 0x600, 0);
+ SetCaret(gMC.x - 0x1800, gMC.y + 0x600, 3, 0);
}
else
{
- SetBullet(bul_no, gMC.x - 0xC00, gMC.y + 0x600, 0);
- SetCaret(gMC.x - 0x1800, gMC.y + 0x600, 3, 0);
+ SetBullet(bul_no, gMC.x + 0xC00, gMC.y + 0x600, 2);
+ SetCaret(gMC.x + 0x1800, gMC.y + 0x600, 3, 0);
}
}
@@ -160,17 +166,17 @@
switch (level)
{
case 1:
- if (CountArmsBullet(3) >= 2)
+ if (CountArmsBullet(3) > 1)
return;
bul_no = 7;
break;
case 2:
- if (CountArmsBullet(3) >= 3)
+ if (CountArmsBullet(3) > 2)
return;
bul_no = 8;
break;
case 3:
- if (CountArmsBullet(3) >= 4)
+ if (CountArmsBullet(3) > 3)
return;
bul_no = 9;
break;
@@ -186,41 +192,41 @@
{
if (gMC.up)
{
- if (gMC.direct)
+ if (gMC.direct == 0)
{
- SetBullet(bul_no, gMC.x + 0x800, gMC.y - 0x1000, 1);
- SetCaret(gMC.x + 0x800, gMC.y - 0x1000, 3, 0);
+ SetBullet(bul_no, gMC.x - 0x800, gMC.y - 0x1000, 1);
+ SetCaret(gMC.x - 0x800, gMC.y - 0x1000, 3, 0);
}
else
{
- SetBullet(bul_no, gMC.x - 0x800, gMC.y - 0x1000, 1);
- SetCaret(gMC.x - 0x800, gMC.y - 0x1000, 3, 0);
+ SetBullet(bul_no, gMC.x + 0x800, gMC.y - 0x1000, 1);
+ SetCaret(gMC.x + 0x800, gMC.y - 0x1000, 3, 0);
}
}
else if (gMC.down)
{
- if (gMC.direct)
+ if (gMC.direct == 0)
{
- SetBullet(bul_no, gMC.x + 0x800, gMC.y + 0x1000, 3);
- SetCaret(gMC.x + 0x800, gMC.y + 0x1000, 3, 0);
+ SetBullet(bul_no, gMC.x - 0x800, gMC.y + 0x1000, 3);
+ SetCaret(gMC.x - 0x800, gMC.y + 0x1000, 3, 0);
}
else
{
- SetBullet(bul_no, gMC.x - 0x800, gMC.y + 0x1000, 3);
- SetCaret(gMC.x - 0x800, gMC.y + 0x1000, 3, 0);
+ SetBullet(bul_no, gMC.x + 0x800, gMC.y + 0x1000, 3);
+ SetCaret(gMC.x + 0x800, gMC.y + 0x1000, 3, 0);
}
}
else
{
- if (gMC.direct)
+ if (gMC.direct == 0)
{
- SetBullet(bul_no, gMC.x + 0xC00, gMC.y + 0x400, 2);
- SetCaret(gMC.x + 0x1800, gMC.y + 0x400, 3, 0);
+ SetBullet(bul_no, gMC.x - 0xC00, gMC.y + 0x400, 0);
+ SetCaret(gMC.x - 0x1800, gMC.y + 0x400, 3, 0);
}
else
{
- SetBullet(bul_no, gMC.x - 0xC00, gMC.y + 0x400, 0);
- SetCaret(gMC.x - 0x1800, gMC.y + 0x400, 3, 0);
+ SetBullet(bul_no, gMC.x + 0xC00, gMC.y + 0x400, 2);
+ SetCaret(gMC.x + 0x1800, gMC.y + 0x400, 3, 0);
}
}
@@ -231,132 +237,135 @@
void ShootBullet_Machinegun1(int level)
{
- if (CountArmsBullet(4) < 5)
+ if (CountArmsBullet(4) > 4)
+ return;
+
+ int bul_no;
+
+ switch (level)
{
- int bul_no;
+ case 1:
+ bul_no = 10;
+ break;
+ case 2:
+ bul_no = 11;
+ break;
+ case 3:
+ bul_no = 12;
+ break;
+ }
+
+ if (!(gKey & gKeyShot))
+ gMC.rensha = 6;
+
+ if (gKey & gKeyShot)
+ {
+ if (++gMC.rensha < 6)
+ return;
- switch (level)
+ gMC.rensha = 0;
+
+ if (!UseArmsEnergy(1))
{
- case 1:
- bul_no = 10;
- break;
- case 2:
- bul_no = 11;
- break;
- case 3:
- bul_no = 12;
- break;
+ PlaySoundObject(37, 1);
+
+ if (empty == 0)
+ {
+ SetCaret(gMC.x, gMC.y, 16, 0);
+ empty = 50;
+ }
+
+ return;
}
-
- if (!(gKey & gKeyShot))
- gMC.rensha = 6;
-
- if (gKey & gKeyShot)
+ else
{
- if (++gMC.rensha > 6)
+ if (gMC.up)
{
- gMC.rensha = 0;
- if (!UseArmsEnergy(1))
+ if (level == 3)
+ gMC.ym += 0x100;
+
+ if (gMC.direct == 0)
{
- PlaySoundObject(37, 1);
-
- if (!empty)
- {
- SetCaret(gMC.x, gMC.y, 16, 0);
- empty = 50;
- }
+ SetBullet(bul_no, gMC.x - 0x600, gMC.y - 0x1000, 1);
+ SetCaret(gMC.x - 0x600, gMC.y - 0x1000, 3, 0);
}
else
{
- if (gMC.up)
- {
- if (level == 3)
- gMC.ym += 0x100;
+ SetBullet(bul_no, gMC.x + 0x600, gMC.y - 0x1000, 1);
+ SetCaret(gMC.x + 0x600, gMC.y - 0x1000, 3, 0);
+ }
+ }
+ else if (gMC.down)
+ {
+ if (level == 3)
+ {
+ if (gMC.ym > 0)
+ gMC.ym /= 2;
- if (gMC.direct)
- {
- SetBullet(bul_no, gMC.x + 0x600, gMC.y - 0x1000, 1);
- SetCaret(gMC.x + 0x600, gMC.y - 0x1000, 3, 0);
- }
- else
- {
- SetBullet(bul_no, gMC.x - 0x600, gMC.y - 0x1000, 1);
- SetCaret(gMC.x - 0x600, gMC.y - 0x1000, 3, 0);
- }
- }
- else if (gMC.down)
+ if (gMC.ym > -0x400)
{
- if (level == 3)
- {
- if (gMC.ym > 0)
- gMC.ym /= 2;
-
- if (gMC.ym > -0x400)
- {
- gMC.ym -= 0x200;
- if (gMC.ym < -0x400)
- gMC.ym = -0x400;
- }
- }
-
- if (gMC.direct)
- {
- SetBullet(bul_no, gMC.x + 0x600, gMC.y + 0x1000, 3);
- SetCaret(gMC.x + 0x600, gMC.y + 0x1000, 3, 0);
- }
- else
- {
- SetBullet(bul_no, gMC.x - 0x600, gMC.y + 0x1000, 3);
- SetCaret(gMC.x - 0x600, gMC.y + 0x1000, 3, 0);
- }
+ gMC.ym -= 0x200;
+ if (gMC.ym < -0x400)
+ gMC.ym = -0x400;
}
- else
- {
- if (gMC.direct)
- {
- SetBullet(bul_no, gMC.x + 0x1800, gMC.y + 0x600, 2);
- SetCaret(gMC.x + 0x1800, gMC.y + 0x600, 3, 0);
- }
- else
- {
- SetBullet(bul_no, gMC.x - 0x1800, gMC.y + 0x600, 0);
- SetCaret(gMC.x - 0x1800, gMC.y + 0x600, 3, 0);
- }
- }
-
- if (level == 3)
- PlaySoundObject(49, 1);
- else
- PlaySoundObject(32, 1);
}
- }
- }
- else
- {
- static int wait = 0;
-
- ++wait;
- if (gMC.equip & 8)
- {
- if (wait > 1)
+
+ if (gMC.direct == 0)
{
- wait = 0;
- ChargeArmsEnergy(1);
+ SetBullet(bul_no, gMC.x - 0x600, gMC.y + 0x1000, 3);
+ SetCaret(gMC.x - 0x600, gMC.y + 0x1000, 3, 0);
}
+ else
+ {
+ SetBullet(bul_no, gMC.x + 0x600, gMC.y + 0x1000, 3);
+ SetCaret(gMC.x + 0x600, gMC.y + 0x1000, 3, 0);
+ }
}
- else
+ else
{
- if (wait > 4)
+ if (gMC.direct == 0)
{
- wait = 0;
- ChargeArmsEnergy(1);
+ SetBullet(bul_no, gMC.x - 0x1800, gMC.y + 0x600, 0);
+ SetCaret(gMC.x - 0x1800, gMC.y + 0x600, 3, 0);
}
+ else
+ {
+ SetBullet(bul_no, gMC.x + 0x1800, gMC.y + 0x600, 2);
+ SetCaret(gMC.x + 0x1800, gMC.y + 0x600, 3, 0);
+ }
}
+
+ if (level == 3)
+ PlaySoundObject(49, 1);
+ else
+ PlaySoundObject(32, 1);
}
}
+ else
+ {
+ static int wait = 0;
+
+ ++wait;
+ if (gMC.equip & 8)
+ {
+ if (wait > 1)
+ {
+ wait = 0;
+ ChargeArmsEnergy(1);
+ }
+ }
+ else
+ {
+ if (wait > 4)
+ {
+ wait = 0;
+ ChargeArmsEnergy(1);
+ }
+ }
+ }
}
-void ShootBullet_Missile(int level, bool bSuper)
+void ShootBullet_Missile(int level, BOOL bSuper)
{
int bul_no;
@@ -375,21 +384,35 @@
break;
}
- if (level == 1)
+ switch (level)
{
- if (CountArmsBullet(10) >= 1 || CountArmsBullet(11) >= 1)
- return;
+ case 1:
+ if (CountArmsBullet(10) > 0)
+ return;
+
+ if (CountArmsBullet(11) > 0)
+ return;
+
+ break;
+
+ case 2:
+ if (CountArmsBullet(10) > 1)
+ return;
+
+ if (CountArmsBullet(11) > 1)
+ return;
+
+ break;
+
+ case 3:
+ if (CountArmsBullet(10) > 3)
+ return;
+
+ if (CountArmsBullet(11) > 3)
+ return;
+
+ break;
}
- else if (level == 2)
- {
- if (CountArmsBullet(10) >= 2 || CountArmsBullet(11) >= 2)
- return;
- }
- else if (level == 3)
- {
- if (CountArmsBullet(10) >= 4 || CountArmsBullet(11) >= 4)
- return;
- }
}
else
@@ -407,150 +430,164 @@
break;
}
- if (level == 1)
+ switch (level)
{
- if (CountArmsBullet(5) >= 1 || CountArmsBullet(6) >= 1)
- return;
+ case 1:
+ if (CountArmsBullet(5) > 0)
+ return;
+
+ if (CountArmsBullet(6) > 0)
+ return;
+
+ break;
+
+ case 2:
+ if (CountArmsBullet(5) > 1)
+ return;
+
+ if (CountArmsBullet(6) > 1)
+ return;
+
+ break;
+
+ case 3:
+ if (CountArmsBullet(5) > 3)
+ return;
+
+ if (CountArmsBullet(6) > 3)
+ return;
+
+ break;
}
- else if (level == 2)
- {
- if (CountArmsBullet(5) >= 2 || CountArmsBullet(6) >= 2)
- return;
- }
- else if ( level == 3 )
- {
- if (CountArmsBullet(5) >= 4 || CountArmsBullet(6) >= 4)
- return;
- }
}
- if (!(gKeyTrg & gKeyShot))
- return;
-
- if (level < 3)
+ if (gKeyTrg & gKeyShot)
{
- if (!UseArmsEnergy(1))
+ if (level < 3)
{
- PlaySoundObject(37, 1);
-
- if (!empty)
+ if (!UseArmsEnergy(1))
{
- SetCaret(gMC.x, gMC.y, 16, 0);
- empty = 50;
- }
+ PlaySoundObject(37, 1);
- return;
- }
+ if (empty == 0)
+ {
+ SetCaret(gMC.x, gMC.y, 16, 0);
+ empty = 50;
+ }
- if (gMC.up)
- {
- if (gMC.direct)
- {
- SetBullet(bul_no, gMC.x + 0x200, gMC.y - 0x1000, 1);
- SetCaret(gMC.x + 0x200, gMC.y - 0x1000, 3, 0);
+ return;
}
- else
+
+ if (gMC.up)
{
- SetBullet(bul_no, gMC.x - 0x200, gMC.y - 0x1000, 1);
- SetCaret(gMC.x - 0x200, gMC.y - 0x1000, 3, 0);
+ if (gMC.direct == 0)
+ {
+ SetBullet(bul_no, gMC.x - 0x200, gMC.y - 0x1000, 1);
+ SetCaret(gMC.x - 0x200, gMC.y - 0x1000, 3, 0);
+ }
+ else
+ {
+ SetBullet(bul_no, gMC.x + 0x200, gMC.y - 0x1000, 1);
+ SetCaret(gMC.x + 0x200, gMC.y - 0x1000, 3, 0);
+ }
}
- }
- else if (gMC.down)
- {
- if (gMC.direct)
+ else if (gMC.down)
{
- SetBullet(bul_no, gMC.x + 0x200, gMC.y + 0x1000, 3);
- SetCaret(gMC.x + 0x200, gMC.y + 0x1000, 3, 0);
+ if (gMC.direct == 0)
+ {
+ SetBullet(bul_no, gMC.x - 0x200, gMC.y + 0x1000, 3);
+ SetCaret(gMC.x - 0x200, gMC.y + 0x1000, 3, 0);
+ }
+ else
+ {
+ SetBullet(bul_no, gMC.x + 0x200, gMC.y + 0x1000, 3);
+ SetCaret(gMC.x + 0x200, gMC.y + 0x1000, 3, 0);
+ }
}
else
{
- SetBullet(bul_no, gMC.x - 0x200, gMC.y + 0x1000, 3);
- SetCaret(gMC.x - 0x200, gMC.y + 0x1000, 3, 0);
+ if (gMC.direct == 0)
+ {
+ SetBullet(bul_no, gMC.x - 0xC00, gMC.y, 0);
+ SetCaret(gMC.x - 0x1800, gMC.y, 3, 0);
+ }
+ else
+ {
+ SetBullet(bul_no, gMC.x + 0xC00, gMC.y, 2);
+ SetCaret(gMC.x + 0x1800, gMC.y, 3, 0);
+ }
}
}
else
{
- if (gMC.direct)
+ if (!UseArmsEnergy(1))
{
- SetBullet(bul_no, gMC.x + 0xC00, gMC.y, 2);
- SetCaret(gMC.x + 0x1800, gMC.y, 3, 0);
- }
- else
- {
- SetBullet(bul_no, gMC.x - 0xC00, gMC.y, 0);
- SetCaret(gMC.x - 0x1800, gMC.y, 3, 0);
- }
- }
- }
- else
- {
- if (!UseArmsEnergy(1))
- {
- PlaySoundObject(37, 1);
+ PlaySoundObject(37, 1);
- if (!empty)
- {
- SetCaret(gMC.x, gMC.y, 16, 0);
- empty = 50;
+ if (empty == 0)
+ {
+ SetCaret(gMC.x, gMC.y, 16, 0);
+ empty = 50;
+ }
+
+ return;
}
- return;
- }
-
- if (gMC.up)
- {
- if (gMC.direct)
+ if (gMC.up)
{
- SetBullet(bul_no, gMC.x + 0x200, gMC.y - 0x1000, 1);
- SetCaret(gMC.x + 0x200, gMC.y - 0x1000, 3, 0);
- SetBullet(bul_no, gMC.x + 0x600, gMC.y, 1);
- SetBullet(bul_no, gMC.x - 0x600, gMC.y, 1);
+ if (gMC.direct == 0)
+ {
+ SetBullet(bul_no, gMC.x - 0x200, gMC.y - 0x1000, 1);
+ SetCaret(gMC.x - 0x200, gMC.y - 0x1000, 3, 0);
+ SetBullet(bul_no, gMC.x + 0x600, gMC.y, 1);
+ SetBullet(bul_no, gMC.x - 0x600, gMC.y, 1);
+ }
+ else
+ {
+ SetBullet(bul_no, gMC.x + 0x200, gMC.y - 0x1000, 1);
+ SetCaret(gMC.x + 0x200, gMC.y - 0x1000, 3, 0);
+ SetBullet(bul_no, gMC.x + 0x600, gMC.y, 1);
+ SetBullet(bul_no, gMC.x - 0x600, gMC.y, 1);
+ }
}
- else
+ else if (gMC.down)
{
- SetBullet(bul_no, gMC.x - 0x200, gMC.y - 0x1000, 1);
- SetCaret(gMC.x - 0x200, gMC.y - 0x1000, 3, 0);
- SetBullet(bul_no, gMC.x + 0x600, gMC.y, 1);
- SetBullet(bul_no, gMC.x - 0x600, gMC.y, 1);
+ if (gMC.direct == 0)
+ {
+ SetBullet(bul_no, gMC.x - 0x200, gMC.y + 0x1000, 3);
+ SetCaret(gMC.x - 0x200, gMC.y + 0x1000, 3, 0);
+ SetBullet(bul_no, gMC.x + 0x600, gMC.y, 3);
+ SetBullet(bul_no, gMC.x - 0x600, gMC.y, 3);
+ }
+ else
+ {
+ SetBullet(bul_no, gMC.x + 0x200, gMC.y + 0x1000, 3);
+ SetCaret(gMC.x + 0x200, gMC.y + 0x1000, 3, 0);
+ SetBullet(bul_no, gMC.x - 0x600, gMC.y, 3);
+ SetBullet(bul_no, gMC.x + 0x600, gMC.y, 3);
+ }
}
- }
- else if (gMC.down)
- {
- if (gMC.direct)
- {
- SetBullet(bul_no, gMC.x + 0x200, gMC.y + 0x1000, 3);
- SetCaret(gMC.x + 0x200, gMC.y + 0x1000, 3, 0);
- SetBullet(bul_no, gMC.x - 0x600, gMC.y, 3);
- SetBullet(bul_no, gMC.x + 0x600, gMC.y, 3);
- }
else
{
- SetBullet(bul_no, gMC.x - 0x200, gMC.y + 0x1000, 3);
- SetCaret(gMC.x - 0x200, gMC.y + 0x1000, 3, 0);
- SetBullet(bul_no, gMC.x + 0x600, gMC.y, 3);
- SetBullet(bul_no, gMC.x - 0x600, gMC.y, 3);
+ if (gMC.direct == 0)
+ {
+ SetBullet(bul_no, gMC.x - 0xC00, gMC.y + 0x200, 0);
+ SetCaret(gMC.x - 0x1800, gMC.y + 0x200, 3, 0);
+ SetBullet(bul_no, gMC.x, gMC.y - 0x1000, 0);
+ SetBullet(bul_no, gMC.x + 0x800, gMC.y - 0x200, 0);
+ }
+ else
+ {
+ SetBullet(bul_no, gMC.x + 0xC00, gMC.y + 0x200, 2);
+ SetCaret(gMC.x + 0x1800, gMC.y + 0x200, 3, 0);
+ SetBullet(bul_no, gMC.x, gMC.y - 0x1000, 2);
+ SetBullet(bul_no, gMC.x - 0x800, gMC.y - 0x200, 2);
+ }
}
}
- else
- {
- if (gMC.direct)
- {
- SetBullet(bul_no, gMC.x + 0xC00, gMC.y + 0x200, 2);
- SetCaret(gMC.x + 0x1800, gMC.y + 0x200, 3, 0);
- SetBullet(bul_no, gMC.x, gMC.y - 0x1000, 2);
- SetBullet(bul_no, gMC.x - 0x800, gMC.y - 0x200, 2);
- }
- else
- {
- SetBullet(bul_no, gMC.x - 0xC00, gMC.y + 0x200, 0);
- SetCaret(gMC.x - 0x1800, gMC.y + 0x200, 3, 0);
- SetBullet(bul_no, gMC.x, gMC.y - 0x1000, 0);
- SetBullet(bul_no, gMC.x + 0x800, gMC.y - 0x200, 0);
- }
- }
- }
- PlaySoundObject(32, 1);
+ PlaySoundObject(32, 1);
+ }
}
void ShootBullet_Bubblin1(void)
@@ -557,67 +594,73 @@
{
static int wait;
- if (CountArmsBullet(7) <= 3)
+ if (CountArmsBullet(7) > 3)
+ return;
+
+ if (gKeyTrg & gKeyShot)
{
- if (gKeyTrg & gKeyShot)
+ if (!UseArmsEnergy(1))
{
- if (!UseArmsEnergy(1))
+ PlaySoundObject(37, 1);
+
+ if (empty == 0)
{
- PlaySoundObject(37, 1);
- if (!empty)
- {
- SetCaret(gMC.x, gMC.y, 16, 0);
- empty = 50;
- }
+ SetCaret(gMC.x, gMC.y, 16, 0);
+ empty = 50;
}
- else
+
+ return;
+ }
+ else
+ {
+ if (gMC.up)
{
- if (gMC.up)
+ if (gMC.direct == 0)
{
- if (gMC.direct)
- {
- SetBullet(19, gMC.x + 0x200, gMC.y - 0x400, 1);
- SetCaret(gMC.x + 0x200, gMC.y - 0x400, 3, 0);
- }
- else
- {
- SetBullet(19, gMC.x - 0x200, gMC.y - 0x400, 1);
- SetCaret(gMC.x - 0x200, gMC.y - 0x400, 3, 0);
- }
+ SetBullet(19, gMC.x - 0x200, gMC.y - 0x400, 1);
+ SetCaret(gMC.x - 0x200, gMC.y - 0x400, 3, 0);
}
- else if (gMC.down)
+ else
{
- if (gMC.direct)
- {
- SetBullet(19, gMC.x + 0x200, gMC.y + 0x400, 3);
- SetCaret(gMC.x + 0x200, gMC.y + 0x400, 3, 0);
- }
- else
- {
- SetBullet(19, gMC.x - 0x200, gMC.y + 0x400, 3);
- SetCaret(gMC.x - 0x200, gMC.y + 0x400, 3, 0);
- }
+ SetBullet(19, gMC.x + 0x200, gMC.y - 0x400, 1);
+ SetCaret(gMC.x + 0x200, gMC.y - 0x400, 3, 0);
}
- else if (gMC.direct)
+ }
+ else if (gMC.down)
+ {
+ if (gMC.direct == 0)
{
- SetBullet(19, gMC.x + 0xC00, gMC.y + 0x600, 2);
- SetCaret(gMC.x + 0x1800, gMC.y + 0x600, 3, 0);
+ SetBullet(19, gMC.x - 0x200, gMC.y + 0x400, 3);
+ SetCaret(gMC.x - 0x200, gMC.y + 0x400, 3, 0);
}
else
{
+ SetBullet(19, gMC.x + 0x200, gMC.y + 0x400, 3);
+ SetCaret(gMC.x + 0x200, gMC.y + 0x400, 3, 0);
+ }
+ }
+ else
+ {
+ if (gMC.direct == 0)
+ {
SetBullet(19, gMC.x - 0xC00, gMC.y + 0x600, 0);
SetCaret(gMC.x - 0x1800, gMC.y + 0x600, 3, 0);
}
-
- PlaySoundObject(48, 1);
+ else
+ {
+ SetBullet(19, gMC.x + 0xC00, gMC.y + 0x600, 2);
+ SetCaret(gMC.x + 0x1800, gMC.y + 0x600, 3, 0);
+ }
}
+
+ PlaySoundObject(48, 1);
}
- else if (++wait > 20)
- {
- wait = 0;
- ChargeArmsEnergy(1);
- }
}
+ else if (++wait > 20)
+ {
+ wait = 0;
+ ChargeArmsEnergy(1);
+ }
}
void ShootBullet_Bubblin2(int level)
@@ -624,127 +667,133 @@
{
static int wait;
- if (CountArmsBullet(7) <= 15)
+ if (CountArmsBullet(7) > 15)
+ return;
+
+ level += 18;
+
+ if (!(gKey & gKeyShot))
+ gMC.rensha = 6;
+
+ if (gKey & gKeyShot)
{
- level += 18;
+ if (++gMC.rensha < 7)
+ return;
- if (!(gKey & gKeyShot))
- gMC.rensha = 6;
+ gMC.rensha = 0;
- if (gKey & gKeyShot)
+ if (!UseArmsEnergy(1))
{
- if (++gMC.rensha >= 7)
- {
- gMC.rensha = 0;
+ PlaySoundObject(37, 1);
- if (!UseArmsEnergy(1))
- {
- PlaySoundObject(37, 1);
- if (!empty)
- {
- SetCaret(gMC.x, gMC.y, 16, 0);
- empty = 50;
- }
- }
- else
- {
- if (gMC.up)
- {
- if (gMC.direct)
- {
- SetBullet(level, gMC.x + 0x600, gMC.y - 0x1000, 1);
- SetCaret(gMC.x + 0x600, gMC.y - 0x2000, 3, 0);
- }
- else
- {
- SetBullet(level, gMC.x - 0x600, gMC.y - 0x1000, 1);
- SetCaret(gMC.x - 0x600, gMC.y - 0x2000, 3, 0);
- }
- }
- else if (gMC.down)
- {
- if (gMC.direct)
- {
- SetBullet(level, gMC.x + 0x600, gMC.y + 0x1000, 3);
- SetCaret(gMC.x + 0x600, gMC.y + 0x2000, 3, 0);
- }
- else
- {
- SetBullet(level, gMC.x - 0x600, gMC.y + 0x1000, 3);
- SetCaret(gMC.x - 0x600, gMC.y + 0x2000, 3, 0);
- }
- }
- else if (gMC.direct)
- {
- SetBullet(level, gMC.x + 0xC00, gMC.y + 0x600, 2);
- SetCaret(gMC.x + 0x1800, gMC.y + 0x600, 3, 0);
- }
- else
- {
- SetBullet(level, gMC.x - 0xC00, gMC.y + 0x600, 0);
- SetCaret(gMC.x - 0x1800, gMC.y + 0x600, 3, 0);
- }
-
- PlaySoundObject(48, 1);
- }
+ if (empty == 0)
+ {
+ SetCaret(gMC.x, gMC.y, 16, 0);
+ empty = 50;
}
- }
- else if (++wait > 1)
- {
- wait = 0;
- ChargeArmsEnergy(1);
- }
- }
-}
-void ShootBullet_Sword(int level)
-{
- if (CountArmsBullet(9) <= 0)
- {
- int bul_no;
-
- switch (level)
- {
- case 1:
- bul_no = 25;
- break;
- case 2:
- bul_no = 26;
- break;
- case 3:
- bul_no = 27;
- break;
+ return;
}
-
- if (gKeyTrg & gKeyShot)
+ else
{
if (gMC.up)
{
if (gMC.direct == 0)
- SetBullet(bul_no, gMC.x - 0x200, gMC.y + 0x800, 1);
+ {
+ SetBullet(level, gMC.x - 0x600, gMC.y - 0x1000, 1);
+ SetCaret(gMC.x - 0x600, gMC.y - 0x2000, 3, 0);
+ }
else
- SetBullet(bul_no, gMC.x + 0x200, gMC.y + 0x800, 1);
+ {
+ SetBullet(level, gMC.x + 0x600, gMC.y - 0x1000, 1);
+ SetCaret(gMC.x + 0x600, gMC.y - 0x2000, 3, 0);
+ }
}
else if (gMC.down)
{
if (gMC.direct == 0)
- SetBullet(bul_no, gMC.x - 0x200, gMC.y - 0xC00, 3);
+ {
+ SetBullet(level, gMC.x - 0x600, gMC.y + 0x1000, 3);
+ SetCaret(gMC.x - 0x600, gMC.y + 0x2000, 3, 0);
+ }
else
- SetBullet(bul_no, gMC.x + 0x200, gMC.y - 0xC00, 3);
+ {
+ SetBullet(level, gMC.x + 0x600, gMC.y + 0x1000, 3);
+ SetCaret(gMC.x + 0x600, gMC.y + 0x2000, 3, 0);
+ }
}
else
{
if (gMC.direct == 0)
- SetBullet(bul_no, gMC.x + 0xC00, gMC.y - 0x600, 0);
+ {
+ SetBullet(level, gMC.x - 0xC00, gMC.y + 0x600, 0);
+ SetCaret(gMC.x - 0x1800, gMC.y + 0x600, 3, 0);
+ }
else
- SetBullet(bul_no, gMC.x - 0xC00, gMC.y - 0x600, 2);
+ {
+ SetBullet(level, gMC.x + 0xC00, gMC.y + 0x600, 2);
+ SetCaret(gMC.x + 0x1800, gMC.y + 0x600, 3, 0);
+ }
}
- PlaySoundObject(34, 1);
+ PlaySoundObject(48, 1);
}
}
+ else if (++wait > 1)
+ {
+ wait = 0;
+ ChargeArmsEnergy(1);
+ }
}
+void ShootBullet_Sword(int level)
+{
+ if (CountArmsBullet(9) > 0)
+ return;
+
+ int bul_no;
+
+ switch (level)
+ {
+ case 1:
+ bul_no = 25;
+ break;
+ case 2:
+ bul_no = 26;
+ break;
+ case 3:
+ bul_no = 27;
+ break;
+ }
+
+ if (gKeyTrg & gKeyShot)
+ {
+ if (gMC.up)
+ {
+ if (gMC.direct == 0)
+ SetBullet(bul_no, gMC.x - 0x200, gMC.y + 0x800, 1);
+ else
+ SetBullet(bul_no, gMC.x + 0x200, gMC.y + 0x800, 1);
+ }
+ else if (gMC.down)
+ {
+ if (gMC.direct == 0)
+ SetBullet(bul_no, gMC.x - 0x200, gMC.y - 0xC00, 3);
+ else
+ SetBullet(bul_no, gMC.x + 0x200, gMC.y - 0xC00, 3);
+ }
+ else
+ {
+ if (gMC.direct == 0)
+ SetBullet(bul_no, gMC.x + 0xC00, gMC.y - 0x600, 0);
+ else
+ SetBullet(bul_no, gMC.x - 0xC00, gMC.y - 0x600, 2);
+ }
+
+ PlaySoundObject(34, 1);
+ }
+}
+
void ShootBullet_Nemesis(int level)
{
int bul_no;
@@ -762,7 +811,10 @@
break;
}
- if (CountArmsBullet(12) <= 1 && gKeyTrg & gKeyShot)
+ if (CountArmsBullet(12) > 1)
+ return;
+
+ if (gKeyTrg & gKeyShot)
{
if (!UseArmsEnergy(1))
{
@@ -836,9 +888,11 @@
void ShootBullet_Spur(int level)
{
+ static BOOL bMax;
+ BOOL bShot;
int bul_no;
- bool bShot = false;
+ bShot = FALSE;
if (gKey & gKeyShot)
{
@@ -849,42 +903,43 @@
if (++spur_charge / 2 % 2)
{
- if (level == 1)
+ switch (level)
{
- PlaySoundObject(59, 1);
+ case 1:
+ PlaySoundObject(59, 1);
+ break;
+
+ case 2:
+ PlaySoundObject(60, 1);
+ break;
+
+ case 3:
+ if (!IsMaxExpMyChar())
+ PlaySoundObject(61, 1);
+
+ break;
}
- else if (level == 2)
- {
- PlaySoundObject(60, 1);
- }
- else if (level == 3)
- {
- if (!IsMaxExpMyChar())
- PlaySoundObject(61, 1);
- }
}
}
else
{
if (spur_charge)
- bShot = true;
+ bShot = TRUE;
spur_charge = 0;
}
- static bool bMax;
-
if (IsMaxExpMyChar())
{
- if (bMax == false)
+ if (bMax == FALSE)
{
- bMax = true;
+ bMax = TRUE;
PlaySoundObject(65, 1);
}
}
else
{
- bMax = false;
+ bMax = FALSE;
}
if (!(gKey & gKeyShot))
@@ -894,7 +949,7 @@
{
case 1:
bul_no = 6;
- bShot = false;
+ bShot = FALSE;
break;
case 2:
bul_no = 37;
@@ -904,10 +959,14 @@
bul_no = 39;
else
bul_no = 38;
+
break;
}
- if (CountArmsBullet(13) <= 0 && CountArmsBullet(14) <= 0 && (gKeyTrg & gKeyShot || bShot))
+ if (CountArmsBullet(13) > 0 || CountArmsBullet(14) > 0)
+ return;
+
+ if (gKeyTrg & gKeyShot || bShot)
{
if (!UseArmsEnergy(1))
{
@@ -992,64 +1051,64 @@
}
//Run functions
- if (!(gMC.cond & 2))
+ if (gMC.cond & 2)
+ return;
+
+ switch (gArmsData[gSelectedArms].code)
{
- switch (gArmsData[gSelectedArms].code)
- {
- case 1:
- ShootBullet_Frontia1(gArmsData[gSelectedArms].level);
- break;
- case 2:
- ShootBullet_PoleStar(gArmsData[gSelectedArms].level);
- break;
- case 3:
- ShootBullet_FireBall(gArmsData[gSelectedArms].level);
- break;
- case 4:
- ShootBullet_Machinegun1(gArmsData[gSelectedArms].level);
- break;
- case 5:
- ShootBullet_Missile(gArmsData[gSelectedArms].level, false);
- break;
- case 7:
- switch (gArmsData[gSelectedArms].level)
- {
- case 1:
- ShootBullet_Bubblin1();
- break;
- case 2:
- ShootBullet_Bubblin2(2);
- break;
- case 3:
- ShootBullet_Bubblin2(3);
- break;
- }
+ case 1:
+ ShootBullet_Frontia1(gArmsData[gSelectedArms].level);
+ break;
+ case 2:
+ ShootBullet_PoleStar(gArmsData[gSelectedArms].level);
+ break;
+ case 3:
+ ShootBullet_FireBall(gArmsData[gSelectedArms].level);
+ break;
+ case 4:
+ ShootBullet_Machinegun1(gArmsData[gSelectedArms].level);
+ break;
+ case 5:
+ ShootBullet_Missile(gArmsData[gSelectedArms].level, FALSE);
+ break;
+ case 7:
+ switch (gArmsData[gSelectedArms].level)
+ {
+ case 1:
+ ShootBullet_Bubblin1();
+ break;
+ case 2:
+ ShootBullet_Bubblin2(2);
+ break;
+ case 3:
+ ShootBullet_Bubblin2(3);
+ break;
+ }
- break;
- case 9:
- switch (gArmsData[gSelectedArms].level)
- {
- case 1:
- ShootBullet_Sword(1);
- break;
- case 2:
- ShootBullet_Sword(2);
- break;
- case 3:
- ShootBullet_Sword(3);
- break;
- }
+ break;
+ case 9:
+ switch (gArmsData[gSelectedArms].level)
+ {
+ case 1:
+ ShootBullet_Sword(1);
+ break;
+ case 2:
+ ShootBullet_Sword(2);
+ break;
+ case 3:
+ ShootBullet_Sword(3);
+ break;
+ }
- break;
- case 10:
- ShootBullet_Missile(gArmsData[gSelectedArms].level, true);
- break;
- case 12:
- ShootBullet_Nemesis(gArmsData[gSelectedArms].level);
- break;
- case 13:
- ShootBullet_Spur(gArmsData[gSelectedArms].level);
- break;
- }
+ break;
+ case 10:
+ ShootBullet_Missile(gArmsData[gSelectedArms].level, TRUE);
+ break;
+ case 12:
+ ShootBullet_Nemesis(gArmsData[gSelectedArms].level);
+ break;
+ case 13:
+ ShootBullet_Spur(gArmsData[gSelectedArms].level);
+ break;
}
}
--- a/src/Stage.h
+++ b/src/Stage.h
@@ -10,7 +10,7 @@
char back[0x20];
char npc[0x20];
char boss[0x20];
- char boss_no;
+ signed char boss_no;
char name[0x20];
};
--- a/src/TextScr.cpp
+++ b/src/TextScr.cpp
@@ -141,7 +141,7 @@
}
//Load stage .tsc
-bool LoadTextScript_Stage(char *name)
+bool LoadTextScript_Stage(const char *name)
{
//Open Head.tsc
char path[PATH_LENGTH];
--- a/src/TextScr.h
+++ b/src/TextScr.h
@@ -16,10 +16,10 @@
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 @@
int next_event;
//Yes/no selected
- char select;
+ signed char select;
//Current face
int face;
@@ -61,7 +61,7 @@
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();
--- a/src/WindowsWrapper.h
+++ b/src/WindowsWrapper.h
@@ -13,6 +13,12 @@
#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