ref: 06e65cad6e0d09d7259b5162d00d1af716bec9fc
parent: f9d62f38efc3b00d86151d09431264ea955104e6
author: Gabriel Ravier <gabravier@gmail.com>
date: Thu Jun 13 16:34:11 EDT 2019
Revamped NpChar, NpcHit and NpcTbl Also changed regex to "((//|\;)[^ \t\n]|(for|while|if|while|do|void|int|bool)\((for|while|if|while|do)\ \(.*\)\;|\(\ |\ \)|//\ [a-z]|\ \ )|break;\n[\t]*[^\n\t\}(\/\/ Fallthrough]|[^\t\n]\{[^\n]|[^\n\t]\}[^\n]" Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
--- a/src/NpChar.cpp
+++ b/src/NpChar.cpp
@@ -67,7 +67,7 @@
if (fp == NULL)
return FALSE;
- //Read "PXE" check
+ // Read "PXE" check
char code[4];
fread(code, 1, 4, fp);
if (memcmp(code, gPassPixEve, 3))
@@ -79,7 +79,7 @@
return FALSE;
}
- //Get amount of NPCs
+ // Get amount of NPCs
#ifdef NONPORTABLE
fread(&count, 4, 1, fp);
#else
@@ -86,13 +86,13 @@
count = File_ReadLE32(fp);
#endif
- //Load NPCs
+ // Load NPCs
memset(gNPC, 0, sizeof(gNPC));
n = 170;
for (i = 0; i < count; i++)
{
- //Get data from file
+ // Get data from file
#ifdef NONPORTABLE
fread(&eve, sizeof(EVENT), 1, fp);
#else
@@ -104,7 +104,7 @@
eve.bits = File_ReadLE16(fp);
#endif
- //Set NPC parameters
+ // Set NPC parameters
gNPC[n].direct = (eve.bits & npc_altDir) ? 2 : 0;
gNPC[n].code_char = eve.code_char;
gNPC[n].code_event = eve.code_event;
@@ -116,7 +116,7 @@
gNPC[n].exp = gNpcTable[gNPC[n].code_char].exp;
SetUniqueParameter(&gNPC[n]);
- //Check flags
+ // Check flags
if (gNPC[n].bits & npc_appearSet)
{
if (GetNPCFlag(gNPC[n].code_flag) == TRUE)
@@ -132,7 +132,7 @@
gNPC[n].cond = 0x80;
}
- //Increase index
+ // Increase index
n++;
}
@@ -149,7 +149,7 @@
if (n == NPC_MAX)
return;
- //Set NPC parameters
+ // Set NPC parameters
memset(&gNPC[n], 0, sizeof(NPCHAR));
gNPC[n].cond |= 0x80u;
gNPC[n].direct = dir;
@@ -166,7 +166,7 @@
void SetDestroyNpChar(int x, int y, int w, int num)
{
- //Create smoke
+ // Create smoke
w /= 0x200;
for (int i = 0; i < num; i++)
{
@@ -175,13 +175,13 @@
SetNpChar(4, x + offset_x, y + offset_y, 0, 0, 0, NULL, 0x100);
}
- //Flash effect
+ // Flash effect
SetCaret(x, y, 12, 0);
}
void SetDestroyNpCharUp(int x, int y, int w, int num)
{
- //Create smoke
+ // Create smoke
w /= 0x200;
for (int i = 0; i < num; i++)
{
@@ -190,7 +190,7 @@
SetNpChar(4, x + offset_x, y + offset_y, 0, 0, 1, NULL, 0x100);
}
- //Flash effect
+ // Flash effect
SetCaret(x, y, 12, 0);
}
@@ -251,9 +251,11 @@
case 5:
tamakazu_ari[t++] = 0;
break;
+
case 10:
tamakazu_ari[t++] = 1;
break;
+
default:
tamakazu_ari[t] = 0;
break;
@@ -601,9 +603,11 @@
case 1:
SetDestroyNpChar(gNPC[n].x, gNPC[n].y, gNPC[n].view.back, 4);
break;
+
case 2:
SetDestroyNpChar(gNPC[n].x, gNPC[n].y, gNPC[n].view.back, 8);
break;
+
case 3:
SetDestroyNpChar(gNPC[n].x, gNPC[n].y, gNPC[n].view.back, 16);
break;
--- a/src/NpcHit.cpp
+++ b/src/NpcHit.cpp
@@ -68,14 +68,14 @@
&& npc->y - npc->hit.top < (y * 0x10 * 0x200) - ((npc->x - (x * 0x10 * 0x200)) / 2) + 0x800
&& npc->y + npc->hit.bottom > (y * 0x10 - 8) * 0x200)
{
- //Clip
+ // Clip
npc->y = (y * 0x10 * 0x200) - ((npc->x - (x * 0x10 * 0x200)) / 2) + 0x800 + npc->hit.top;
- //Halt momentum
+ // Halt momentum
if (npc->ym < 0)
npc->ym = 0;
- //Set that hit a ceiling
+ // Set that hit a ceiling
hit |= 2;
}
@@ -91,14 +91,14 @@
&& npc->y - npc->hit.top < (y * 0x10 * 0x200) - ((npc->x - (x * 0x10 * 0x200)) / 2) - 0x800
&& npc->y + npc->hit.bottom > (y * 0x10 - 8) * 0x200)
{
- //Clip
+ // Clip
npc->y = (y * 0x10 * 0x200) - ((npc->x - (x * 0x10 * 0x200)) / 2) - 0x800 + npc->hit.top;
- //Halt momentum
+ // Halt momentum
if (npc->ym < 0)
npc->ym = 0;
- //Set that hit a ceiling
+ // Set that hit a ceiling
hit |= 2;
}
@@ -114,14 +114,14 @@
&& npc->y - npc->hit.top < (y * 0x10 * 0x200) + ((npc->x - (x * 0x10 * 0x200)) / 2) - 0x800
&& npc->y + npc->hit.bottom > (y * 0x10 - 8) * 0x200)
{
- //Clip
+ // Clip
npc->y = (y * 0x10 * 0x200) + ((npc->x - (x * 0x10 * 0x200)) / 2) - 0x800 + npc->hit.top;
- //Halt momentum
+ // Halt momentum
if (npc->ym < 0)
npc->ym = 0;
- //Set that hit a ceiling
+ // Set that hit a ceiling
hit |= 2;
}
@@ -137,14 +137,14 @@
&& npc->y - npc->hit.top < (y * 0x10 * 0x200) + ((npc->x - (x * 0x10 * 0x200)) / 2) + 0x800
&& npc->y + npc->hit.bottom > (y * 0x10 - 8) * 0x200)
{
- //Clip
+ // Clip
npc->y = (y * 0x10 * 0x200) + ((npc->x - (x * 0x10 * 0x200)) / 2) + 0x800 + npc->hit.top;
- //Halt momentum
+ // Halt momentum
if (npc->ym < 0)
npc->ym = 0;
- //Set that hit a ceiling
+ // Set that hit a ceiling
hit |= 2;
}
@@ -162,14 +162,14 @@
&& npc->y + npc->hit.bottom > (y * 0x10 * 0x200) + ((npc->x - (x * 0x10 * 0x200)) / 2) - 0x800
&& npc->y - npc->hit.top < (y * 0x10 + 8) * 0x200)
{
- //Clip
+ // Clip
npc->y = (y * 0x10 * 0x200) + ((npc->x - (x * 0x10 * 0x200)) / 2) - 0x800 - npc->hit.bottom;
- //Halt momentum
+ // Halt momentum
if (npc->ym > 0)
npc->ym = 0;
- //Set that hit this slope
+ // Set that hit this slope
hit |= 0x28;
}
@@ -187,14 +187,14 @@
&& npc->y + npc->hit.bottom > (y * 0x10 * 0x200) + ((npc->x - (x * 0x10 * 0x200)) / 2) + 0x800
&& npc->y - npc->hit.top < (y * 0x10 + 8) * 0x200)
{
- //Clip
+ // Clip
npc->y = (y * 0x10 * 0x200) + ((npc->x - (x * 0x10 * 0x200)) / 2) + 0x800 - npc->hit.bottom;
- //Halt momentum
+ // Halt momentum
if (npc->ym > 0)
npc->ym = 0;
- //Set that hit this slope
+ // Set that hit this slope
hit |= 0x28;
}
@@ -212,14 +212,14 @@
&& npc->y + npc->hit.bottom > (y * 0x10 * 0x200) - ((npc->x - (x * 0x10 * 0x200)) / 2) + 0x800
&& npc->y - npc->hit.top < (y * 0x10 + 8) * 0x200)
{
- //Clip
+ // Clip
npc->y = (y * 0x10 * 0x200) - ((npc->x - (x * 0x10 * 0x200)) / 2) + 0x800 - npc->hit.bottom;
- //Halt momentum
+ // Halt momentum
if (npc->ym > 0)
npc->ym = 0;
- //Set that hit this slope
+ // Set that hit this slope
hit |= 0x18;
}
@@ -237,14 +237,14 @@
&& npc->y + npc->hit.bottom > (y * 0x10 * 0x200) - ((npc->x - (x * 0x10 * 0x200)) / 2) - 0x800
&& npc->y - npc->hit.top < (y * 0x10 + 8) * 0x200)
{
- //Clip
+ // Clip
npc->y = (y * 0x10 * 0x200) - ((npc->x - (x * 0x10 * 0x200)) / 2) - 0x800 - npc->hit.bottom;
- //Halt momentum
+ // Halt momentum
if (npc->ym > 0)
npc->ym = 0;
- //Set that hit this slope
+ // Set that hit this slope
hit |= 0x18;
}
@@ -321,12 +321,12 @@
{
switch (GetAttribute(x + offx[j], y + offy[j]))
{
- //No NPC block
+ // No NPC block
case 0x44:
if (gNPC[i].bits & npc_ignore44)
break;
// Fallthrough
- //Block
+ // Block
case 0x03:
case 0x05:
case 0x41:
@@ -334,7 +334,7 @@
JadgeHitNpCharBlock(&gNPC[i], x + offx[j], y + offy[j]);
break;
- //Slopes
+ // Slopes
case 0x50:
JudgeHitNpCharTriangleA(&gNPC[i], x + offx[j], y + offy[j]);
break;
@@ -367,7 +367,7 @@
JudgeHitNpCharTriangleH(&gNPC[i], x + offx[j], y + offy[j]);
break;
- //Water
+ // Water
case 0x02:
case 0x60:
case 0x62:
@@ -374,7 +374,7 @@
JudgeHitNpCharWater(&gNPC[i], x + offx[j], y + offy[j]);
break;
- //Water block
+ // Water block
case 0x04:
case 0x61:
case 0x64:
@@ -382,7 +382,7 @@
JudgeHitNpCharWater(&gNPC[i], x + offx[j], y + offy[j]);
break;
- //Water slopes
+ // Water slopes
case 0x70:
JudgeHitNpCharTriangleA(&gNPC[i], x + offx[j], y + offy[j]);
JudgeHitNpCharWater(&gNPC[i], x + offx[j], y + offy[j]);
@@ -460,24 +460,26 @@
void LoseNpChar(NPCHAR *npc, BOOL bVanish)
{
- //Play death sound
+ // Play death sound
PlaySoundObject(npc->destroy_voice, 1);
- //Create smoke
+ // Create smoke
switch (npc->size)
{
case 1:
SetDestroyNpChar(npc->x, npc->y, npc->view.back, 3);
break;
+
case 2:
SetDestroyNpChar(npc->x, npc->y, npc->view.back, 7);
break;
+
case 3:
SetDestroyNpChar(npc->x, npc->y, npc->view.back, 12);
break;
}
- //Create drop
+ // Create drop
if (npc->exp)
{
int val;
@@ -512,10 +514,10 @@
}
}
- //Set flag
+ // Set flag
SetNPCFlag(npc->code_flag);
- //Create value view
+ // Create value view
if (npc->bits & npc_showDamage)
{
if ((npc->bits & npc_showDamage) && npc->damage_view)
@@ -551,7 +553,7 @@
if (gBul[b].damage == -1)
continue;
- //Check if bullet touches npc
+ // Check if bullet touches npc
bHit = FALSE;
if (gNPC[n].bits & npc_shootable
&& gNPC[n].x - gNPC[n].hit.back < gBul[b].x + gBul[b].enemyXL
@@ -568,7 +570,7 @@
if (bHit)
{
- //Damage NPC
+ // Damage NPC
if (gNPC[n].bits & npc_shootable)
{
gNPC[n].life -= gBul[b].damage;
@@ -611,7 +613,7 @@
}
else if ((gBul[b].bbits & 0x10) == 0)
{
- //Hit invulnerable NPC
+ // Hit invulnerable NPC
SetCaret((gBul[b].x + gNPC[n].x) / 2, (gBul[b].y + gNPC[n].y) / 2, 2, 2);
PlaySoundObject(31, 1);
gBul[b].life = 0;
--- a/src/NpcTbl.cpp
+++ b/src/NpcTbl.cpp
@@ -38,46 +38,46 @@
}
#ifdef NONPORTABLE
- for (n = 0; n < num; n++) //bits
+ for (n = 0; n < num; n++) // Bits
fread(&gNpcTable[n].bits, 2, 1, fp);
- for (n = 0; n < num; n++) //life
+ for (n = 0; n < num; n++) // Life
fread(&gNpcTable[n].life, 2, 1, fp);
- for (n = 0; n < num; n++) //surf
+ for (n = 0; n < num; n++) // Surf
fread(&gNpcTable[n].surf, 1, 1, fp);
- for (n = 0; n < num; n++) //destroy_voice
+ for (n = 0; n < num; n++) // Destroy_voice
fread(&gNpcTable[n].destroy_voice, 1, 1, fp);
- for (n = 0; n < num; n++) //hit_voice
+ for (n = 0; n < num; n++) // Hit_voice
fread(&gNpcTable[n].hit_voice, 1, 1, fp);
- for (n = 0; n < num; n++) //size
+ for (n = 0; n < num; n++) // Size
fread(&gNpcTable[n].size, 1, 1, fp);
- for (n = 0; n < num; n++) //exp
+ for (n = 0; n < num; n++) // Exp
fread(&gNpcTable[n].exp, 4, 1, fp);
- for (n = 0; n < num; n++) //damage
+ for (n = 0; n < num; n++) // Damage
fread(&gNpcTable[n].damage, 4, 1, fp);
- for (n = 0; n < num; n++) //hit
+ for (n = 0; n < num; n++) // Hit
fread(&gNpcTable[n].hit, 4, 1, fp);
- for (n = 0; n < num; n++) //view
+ for (n = 0; n < num; n++) // View
fread(&gNpcTable[n].view, 4, 1, fp);
#else
- for (n = 0; n < num; n++) //bits
+ for (n = 0; n < num; n++) // Bits
gNpcTable[n].bits = File_ReadLE16(fp);
- for (n = 0; n < num; n++) //life
+ for (n = 0; n < num; n++) // Life
gNpcTable[n].life = File_ReadLE16(fp);
- for (n = 0; n < num; n++) //surf
+ for (n = 0; n < num; n++) // Surf
fread(&gNpcTable[n].surf, 1, 1, fp);
- for (n = 0; n < num; n++) //destroy_voice
+ for (n = 0; n < num; n++) // Destroy_voice
fread(&gNpcTable[n].destroy_voice, 1, 1, fp);
- for (n = 0; n < num; n++) //hit_voice
+ for (n = 0; n < num; n++) // Hit_voice
fread(&gNpcTable[n].hit_voice, 1, 1, fp);
- for (n = 0; n < num; n++) //size
+ for (n = 0; n < num; n++) // Size
fread(&gNpcTable[n].size, 1, 1, fp);
- for (n = 0; n < num; n++) //exp
+ for (n = 0; n < num; n++) // Exp
gNpcTable[n].exp = File_ReadLE32(fp);
- for (n = 0; n < num; n++) //damage
+ for (n = 0; n < num; n++) // Damage
gNpcTable[n].damage = File_ReadLE32(fp);
- for (n = 0; n < num; n++) //hit
+ for (n = 0; n < num; n++) // Hit
fread(&gNpcTable[n].hit, 4, 1, fp);
- for (n = 0; n < num; n++) //view
+ for (n = 0; n < num; n++) // View
fread(&gNpcTable[n].view, 4, 1, fp);
#endif
@@ -94,7 +94,7 @@
}
}
-//Npc function table
+// Npc function table
NPCFUNCTION gpNpcFuncTbl[361] =
{
ActNpc000,