shithub: cstory

Download patch

ref: 16c03115c91c1de2b535fdb0a15b61e94ec9ae0a
parent: 9c32a5dd0561f463ceb3b9a773e5431a13ed35fa
author: Clownacy <[email protected]>
date: Fri Nov 15 16:55:48 EST 2019

Clean-up Bullet.cpp

--- a/src/Bullet.cpp
+++ b/src/Bullet.cpp
@@ -64,21 +64,23 @@
 
 BULLET gBul[BULLET_MAX];
 
-void InitBullet()
+void InitBullet(void)
 {
 	// Identical to ClearBullet
-	for (int i = 0; i < BULLET_MAX; i++)
+	int i;
+
+	for (i = 0; i < BULLET_MAX; ++i)
 		gBul[i].cond = 0;
 }
 
 int CountArmsBullet(int arms_code)
 {
+	int i;
 	int count = 0;
-	for (int i = 0; i < BULLET_MAX; i++)
-	{
+
+	for (i = 0; i < BULLET_MAX; ++i)
 		if (gBul[i].cond & 0x80 && (gBul[i].code_bullet + 2) / 3 == arms_code)
 			++count;
-	}
 
 	return count;
 }
@@ -85,12 +87,12 @@
 
 int CountBulletNum(int bullet_code)
 {
+	int i;
 	int count = 0;
-	for (int i = 0; i < BULLET_MAX; i++)
-	{
+
+	for (i = 0; i < BULLET_MAX; ++i)
 		if (gBul[i].cond & 0x80 && gBul[i].code_bullet == bullet_code)
 			++count;
-	}
 
 	return count;
 }
@@ -98,21 +100,19 @@
 void DeleteBullet(int code)
 {
 	int i;
-	int unknown = 0;	// Not the original name
-	for (i = 0; i < BULLET_MAX; i++)
-	{
-		if (gBul[i].cond & 0x80)
-		{
-			if ((gBul[i].code_bullet + 2) / 3 == code)
+	int count = 0;	// Guessed name. This is unused, and was optimised out of the Linux port.
+
+	for (i = 0; i < BULLET_MAX; ++i)
+		if (gBul[i].cond & 0x80 && (gBul[i].code_bullet + 2) / 3 == code)
 				gBul[i].cond = 0;
-		}
-	}
 }
 
-void ClearBullet()
+void ClearBullet(void)
 {
 	// Identical to InitBullet
-	for (int i = 0; i < BULLET_MAX; i++)
+	int i;
+
+	for (i = 0; i < BULLET_MAX; ++i)
 		gBul[i].cond = 0;
 }
 
@@ -121,7 +121,7 @@
 	int i;
 	int x, y;
 
-	for (i = 0; i < BULLET_MAX; i++)
+	for (i = 0; i < BULLET_MAX; ++i)
 	{
 		if (gBul[i].cond & 0x80)
 		{
@@ -145,7 +145,7 @@
 					break;
 			}
 
-			PutBitmap3(&grcGame, x / 0x200 - fx / 0x200, y / 0x200 - fy / 0x200, &gBul[i].rect, SURFACE_ID_BULLET);
+			PutBitmap3(&grcGame, (x / 0x200) - (fx / 0x200), (y / 0x200) - (fy / 0x200), &gBul[i].rect, SURFACE_ID_BULLET);
 		}
 	}
 }
@@ -167,14 +167,14 @@
 	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].enemyXL = gBulTbl[no].enemyXL * 0x200;
+	gBul[i].enemyYL = gBulTbl[no].enemyYL * 0x200;
+	gBul[i].blockXL = gBulTbl[no].blockXL * 0x200;
+	gBul[i].blockYL = gBulTbl[no].blockYL * 0x200;
+	gBul[i].view.back = gBulTbl[no].view.back * 0x200;
+	gBul[i].view.front = gBulTbl[no].view.front * 0x200;
+	gBul[i].view.top = gBulTbl[no].view.top * 0x200;
+	gBul[i].view.bottom = gBulTbl[no].view.bottom * 0x200;
 	gBul[i].x = x;
 	gBul[i].y = y;
 }
@@ -185,64 +185,63 @@
 	{
 		bul->cond = 0;
 		SetCaret(bul->x, bul->y, 3, 0);
+		return;
 	}
-	else
+
+	if (bul->act_no == 0)
 	{
-		if (bul->act_no == 0)
-		{
-			bul->ani_no = Random(0, 2);
-			bul->act_no = 1;
+		bul->ani_no = Random(0, 2);
+		bul->act_no = 1;
 
-			switch (bul->direct)
-			{
-				case 0:
-					bul->xm = -0x600;
-					break;
-				case 1:
-					bul->ym = -0x600;
-					break;
-				case 2:
-					bul->xm = 0x600;
-					break;
-				case 3:
-					bul->ym = 0x600;
-					break;
-			}
-		}
-		else
+		switch (bul->direct)
 		{
-			bul->x += bul->xm;
-			bul->y += bul->ym;
+			case 0:
+				bul->xm = -0x600;
+				break;
+			case 1:
+				bul->ym = -0x600;
+				break;
+			case 2:
+				bul->xm = 0x600;
+				break;
+			case 3:
+				bul->ym = 0x600;
+				break;
 		}
+	}
+	else
+	{
+		bul->x += bul->xm;
+		bul->y += bul->ym;
+	}
 
-		if (++bul->ani_wait > 0)
-		{
-			bul->ani_wait = 0;
-			++bul->ani_no;
-		}
+	if (++bul->ani_wait > 0)
+	{
+		bul->ani_wait = 0;
+		++bul->ani_no;
+	}
 
-		if (bul->ani_no > 3)
-			bul->ani_no = 0;
+	if (bul->ani_no > 3)
+		bul->ani_no = 0;
 
-		RECT rcLeft[4] = {
-			{136, 80, 152, 80},
-			{120, 80, 136, 96},
-			{136, 64, 152, 80},
-			{120, 64, 136, 80},
-		};
+	RECT rcLeft[4] = {
+		{136, 80, 152, 80},
+		{120, 80, 136, 96},
+		{136, 64, 152, 80},
+		{120, 64, 136, 80},
+	};
 
-		RECT rcRight[4] = {
-			{120, 64, 136, 80},
-			{136, 64, 152, 80},
-			{120, 80, 136, 96},
-			{136, 80, 152, 80},
-		};
+	RECT rcRight[4] = {
+		{120, 64, 136, 80},
+		{136, 64, 152, 80},
+		{120, 80, 136, 96},
+		{136, 80, 152, 80},
+	};
 
-		if (bul->direct == 0)
-			bul->rect = rcLeft[bul->ani_no];
-		else
-			bul->rect = rcRight[bul->ani_no];
-	}
+	if (bul->direct == 0)
+		bul->rect = rcLeft[bul->ani_no];
+	else
+		bul->rect = rcRight[bul->ani_no];
 }
 
 void ActBullet_Frontia2(BULLET *bul, int level)
@@ -251,125 +250,124 @@
 	{
 		bul->cond = 0;
 		SetCaret(bul->x, bul->y, 3, 0);
+		return;
 	}
-	else
+
+	if (bul->act_no == 0)
 	{
-		if (bul->act_no == 0)
+		bul->ani_no = Random(0, 2);
+		bul->act_no = 1;
+
+		switch (bul->direct)
 		{
-			bul->ani_no = Random(0, 2);
-			bul->act_no = 1;
+			case 0:
+				bul->xm = -0x200;
+				break;
+			case 1:
+				bul->ym = -0x200;
+				break;
+			case 2:
+				bul->xm = 0x200;
+				break;
+			case 3:
+				bul->ym = 0x200;
+				break;
+		}
 
-			switch (bul->direct)
-			{
-				case 0:
-					bul->xm = -0x200;
-					break;
-				case 1:
-					bul->ym = -0x200;
-					break;
-				case 2:
-					bul->xm = 0x200;
-					break;
-				case 3:
-					bul->ym = 0x200;
-					break;
-			}
+		static unsigned int inc;
+		++inc;
 
-			static unsigned int inc;
-			++inc;
+		switch (bul->direct)
+		{
+			case 0:
+			case 2:
+				if (inc % 2)
+					bul->ym = 0x400;
+				else
+					bul->ym = -0x400;
 
-			switch (bul->direct)
-			{
-				case 0:
-				case 2:
-					if (inc % 2)
+				break;
+
+			case 1:
+			case 3:
+				if (inc % 2)
+					bul->xm = 0x400;
+				else
+					bul->xm = -0x400;
+
+				break;
+		}
+	}
+	else
+	{
+		switch (bul->direct)
+		{
+			case 0:
+				bul->xm -= 0x80;
+				break;
+			case 1:
+				bul->ym -= 0x80;
+				break;
+			case 2:
+				bul->xm += 0x80;
+				break;
+			case 3:
+				bul->ym += 0x80;
+				break;
+		}
+
+		switch (bul->direct)
+		{
+			case 0:
+			case 2:
+				if (bul->count1 % 5 == 2)
+				{
+					if (bul->ym < 0)
 						bul->ym = 0x400;
 					else
 						bul->ym = -0x400;
+				}
 
-					break;
+				break;
 
-				case 1:
-				case 3:
-					if (inc % 2)
+			case 1u:
+			case 3u:
+				if (bul->count1 % 5 == 2)
+				{
+					if (bul->xm < 0)
 						bul->xm = 0x400;
 					else
 						bul->xm = -0x400;
+				}
 
-					break;
-			}
+				break;
 		}
-		else
-		{
-			switch (bul->direct)
-			{
-				case 0:
-					bul->xm -= 0x80;
-					break;
-				case 1:
-					bul->ym -= 0x80;
-					break;
-				case 2:
-					bul->xm += 0x80;
-					break;
-				case 3:
-					bul->ym += 0x80;
-					break;
-			}
 
-			switch (bul->direct)
-			{
-				case 0:
-				case 2:
-					if (bul->count1 % 5 == 2)
-					{
-						if (bul->ym < 0)
-							bul->ym = 0x400;
-						else
-							bul->ym = -0x400;
-					}
+		bul->x += bul->xm;
+		bul->y += bul->ym;
+	}
 
-					break;
+	if (++bul->ani_wait > 0)
+	{
+		bul->ani_wait = 0;
+		++bul->ani_no;
+	}
 
-				case 1u:
-				case 3u:
-					if (bul->count1 % 5 == 2)
-					{
-						if (bul->xm < 0)
-							bul->xm = 0x400;
-						else
-							bul->xm = -0x400;
-					}
+	if (bul->ani_no > 2)
+		bul->ani_no = 0;
 
-					break;
-			}
+	RECT rect[3] = {
+		{192, 16, 208, 32},
+		{208, 16, 224, 32},
+		{224, 16, 240, 32},
+	};
 
-			bul->x += bul->xm;
-			bul->y += bul->ym;
-		}
+	bul->rect = rect[bul->ani_no];
 
-		if (++bul->ani_wait > 0)
-		{
-			bul->ani_wait = 0;
-			++bul->ani_no;
-		}
-
-		if (bul->ani_no > 2)
-			bul->ani_no = 0;
-
-		RECT rect[3] = {
-			{192, 16, 208, 32},
-			{208, 16, 224, 32},
-			{224, 16, 240, 32},
-		};
-
-		bul->rect = rect[bul->ani_no];
-
-		if (level == 2)
-			SetNpChar(129, bul->x, bul->y, 0, -0x200, bul->ani_no, 0, 0x100);
-		else
-			SetNpChar(129, bul->x, bul->y, 0, -0x200, bul->ani_no + 3, 0, 0x100);
-	}
+	if (level == 2)
+		SetNpChar(129, bul->x, bul->y, 0, -0x200, bul->ani_no, NULL, 0x100);
+	else
+		SetNpChar(129, bul->x, bul->y, 0, -0x200, bul->ani_no + 3, NULL, 0x100);
 }
 
 void ActBullet_PoleStar(BULLET *bul, int level)
@@ -382,111 +380,112 @@
 	{
 		bul->cond = 0;
 		SetCaret(bul->x, bul->y, 3, 0);
+		return;
 	}
-	else
+
+	if (bul->act_no == 0)
 	{
-		if (bul->act_no == 0)
-		{
-			bul->act_no = 1;
+		bul->act_no = 1;
 
-			// Set speed
-			switch (bul->direct)
-			{
-				case 0:
-					bul->xm = -0x1000;
-					break;
-				case 1:
-					bul->ym = -0x1000;
-					break;
-				case 2:
-					bul->xm = 0x1000;
-					break;
-				case 3:
-					bul->ym = 0x1000;
-					break;
-			}
-
-			// Set hitbox
-			switch (level)
-			{
-				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
+		// Set speed
+		switch (bul->direct)
 		{
-			// Move
-			bul->x += bul->xm;
-			bul->y += bul->ym;
+			case 0:
+				bul->xm = -0x1000;
+				break;
+			case 1:
+				bul->ym = -0x1000;
+				break;
+			case 2:
+				bul->xm = 0x1000;
+				break;
+			case 3:
+				bul->ym = 0x1000;
+				break;
 		}
 
-		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
+		// Set hitbox
 		switch (level)
 		{
 			case 1:
-				if (bul->direct == 1 || bul->direct == 3)
-					bul->rect = rect1[1];
-				else
-					bul->rect = rect1[0];
-
+				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:
-				if (bul->direct == 1 || bul->direct == 3)
-					bul->rect = rect2[1];
-				else
-					bul->rect = rect2[0];
-
+				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;
-			case 3:
-				if (bul->direct == 1 || bul->direct == 3)
-					bul->rect = rect3[1];
-				else
-					bul->rect = rect3[0];
-
-				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;
+	}
 }
 
 void ActBullet_FireBall(BULLET *bul, int level)
@@ -501,135 +500,136 @@
 	{
 		bul->cond = 0;
 		SetCaret(bul->x, bul->y, 3, 0);
+		return;
 	}
-	else
+
+	bBreak = FALSE;
+	if (bul->flag & 2 && bul->flag & 8)
+		bBreak = TRUE;
+	if (bul->flag & 1 && bul->flag & 4)
+		bBreak = TRUE;
+
+	if (bul->direct == 0 && bul->flag & 1)
+		bul->direct = 2;
+	if (bul->direct == 2 && bul->flag & 4)
+		bul->direct = 0;
+
+	if (bBreak)
 	{
-		bBreak = FALSE;
-		if (bul->flag & 2 && bul->flag & 8)
-			bBreak = TRUE;
-		if (bul->flag & 1 && bul->flag & 4)
-			bBreak = TRUE;
+		bul->cond = 0;
+		SetCaret(bul->x, bul->y, 2, 0);
+		PlaySoundObject(28, 1);
+		return;
+	}
 
-		if (!bul->direct && bul->flag & 1)
-			bul->direct = 2;
-		if (bul->direct == 2 && bul->flag & 4)
-			bul->direct = 0;
+	if (bul->act_no == 0)
+	{
+		bul->act_no = 1;
 
-		if (bBreak)
+		switch (bul->direct)
 		{
-			bul->cond = 0;
-			SetCaret(bul->x, bul->y, 2, 0);
-			PlaySoundObject(28, 1);
-		}
-		else
-		{
-			if (bul->act_no == 0)
-			{
-				bul->act_no = 1;
+			case 0:
+				bul->xm = -0x400;
+				break;
 
-				switch (bul->direct)
-				{
-					case 0:
-						bul->xm = -0x400;
-						break;
-					case 1:
-						bul->xm = gMC.xm;
+			case 1:
+				bul->xm = gMC.xm;
 
-						if (gMC.xm < 0)
-							bul->direct = 0;
-						else
-							bul->direct = 2;
+				if (gMC.xm < 0)
+					bul->direct = 0;
+				else
+					bul->direct = 2;
 
-						if (gMC.direct == 0)
-							bul->xm -= 0x80;
-						else
-							bul->xm += 0x80;
+				if (gMC.direct == 0)
+					bul->xm -= 0x80;
+				else
+					bul->xm += 0x80;
 
-						bul->ym = -0x5FF;
-						break;
-					case 2:
-						bul->xm = 0x400;
-						break;
-					case 3:
-						bul->xm = gMC.xm;
+				bul->ym = -0x5FF;
+				break;
 
-						if (gMC.xm < 0)
-							bul->direct = 0;
-						else
-							bul->direct = 2;
+			case 2:
+				bul->xm = 0x400;
+				break;
 
-						bul->ym = 0x5FF;
+			case 3:
+				bul->xm = gMC.xm;
 
-						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;
+				if (gMC.xm < 0)
+					bul->direct = 0;
+				else
+					bul->direct = 2;
 
-				bul->ym += 85;
-				if (bul->ym > 0x3FF)
-					bul->ym = 0x3FF;
+				bul->ym = 0x5FF;
 
-				bul->x += bul->xm;
-				bul->y += bul->ym;
+				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;
 
-				if (bul->flag & 0xD)
-					PlaySoundObject(34, 1);
-			}
+		bul->ym += 85;
+		if (bul->ym > 0x3FF)
+			bul->ym = 0x3FF;
 
-			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)
+		bul->x += bul->xm;
+		bul->y += bul->ym;
 
-			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)
+		if (bul->flag & 0xD)
+			PlaySoundObject(34, 1);
+	}
 
-			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)
+	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)
 
-			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)
+	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)
 
-			bul->ani_no++;
+	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)
 
-			if (level == 1)
-			{
-				if (bul->ani_no > 3)
-					bul->ani_no = 0;
+	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)
 
-				if (bul->direct == 0)
-					bul->rect = rect_left1[bul->ani_no];
-				else
-					bul->rect = rect_right1[bul->ani_no];
-			}
-			else
-			{
-				if (bul->ani_no > 2)
-					bul->ani_no = 0;
+	++bul->ani_no;
 
-				if (bul->direct == 0)
-					bul->rect = rect_left2[bul->ani_no];
-				else
-					bul->rect = rect_right2[bul->ani_no];
+	if (level == 1)
+	{
+		if (bul->ani_no > 3)
+			bul->ani_no = 0;
 
-				if (level == 2)
-					SetNpChar(129, bul->x, bul->y, 0, -0x200, bul->ani_no, 0, 0x100);
-				else
-					SetNpChar(129, bul->x, bul->y, 0, -0x200, bul->ani_no + 3, 0, 0x100);
-			}
-		}
+		if (bul->direct == 0)
+			bul->rect = rect_left1[bul->ani_no];
+		else
+			bul->rect = rect_right1[bul->ani_no];
 	}
+	else
+	{
+		if (bul->ani_no > 2)
+			bul->ani_no = 0;
+
+		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, NULL, 0x100);
+		else
+			SetNpChar(129, bul->x, bul->y, 0, -0x200, bul->ani_no + 3, NULL, 0x100);
+	}
 }
 
 void ActBullet_MachineGun(BULLET *bul, int level)
@@ -661,70 +661,71 @@
 	{
 		bul->cond = 0;
 		SetCaret(bul->x, bul->y, 3, 0);
+		return;
 	}
-	else
+
+	if (bul->act_no == 0)
 	{
-		if (bul->act_no == 0)
+		switch (level)
 		{
-			switch (level)
-			{
-				case 1:
-					move = 0x1000;
-					break;
-				case 2:
-					move = 0x1000;
-					break;
-				case 3:
-					move = 0x1000;
-					break;
-			}
+			case 1:
+				move = 0x1000;
+				break;
+			case 2:
+				move = 0x1000;
+				break;
+			case 3:
+				move = 0x1000;
+				break;
+		}
 
-			bul->act_no = 1;
+		bul->act_no = 1;
 
-			switch (bul->direct)
-			{
-				case 0:
-					bul->xm = -move;
-					bul->ym = Random(-0xAA, 0xAA);
-					break;
-				case 1:
-					bul->ym = -move;
-					bul->xm = Random(-0xAA, 0xAA);
-					break;
-				case 2:
-					bul->xm = move;
-					bul->ym = Random(-0xAA, 0xAA);
-					break;
-				case 3:
-					bul->ym = move;
-					bul->xm = Random(-0xAA, 0xAA);
-					break;
-			}
+		switch (bul->direct)
+		{
+			case 0:
+				bul->xm = -move;
+				bul->ym = Random(-0xAA, 0xAA);
+				break;
+			case 1:
+				bul->ym = -move;
+				bul->xm = Random(-0xAA, 0xAA);
+				break;
+			case 2:
+				bul->xm = move;
+				bul->ym = Random(-0xAA, 0xAA);
+				break;
+			case 3:
+				bul->ym = move;
+				bul->xm = Random(-0xAA, 0xAA);
+				break;
 		}
-		else
+	}
+	else
+	{
+		bul->x += bul->xm;
+		bul->y += bul->ym;
+
+		switch (level)
 		{
-			bul->x += bul->xm;
-			bul->y += bul->ym;
+			case 1:
+				bul->rect = rect1[bul->direct];
+				break;
 
-			switch (level)
-			{
-				case 1:
-					bul->rect = rect1[bul->direct];
-					break;
-				case 2:
-					bul->rect = rect2[bul->direct];
+			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);
+				if (bul->direct == 1 || bul->direct == 3)
+					SetNpChar(127, bul->x, bul->y, 0, 0, 1, NULL, 0x100);
+				else
+					SetNpChar(127, bul->x, bul->y, 0, 0, 0, NULL, 0x100);
 
-					break;
-				case 3:
-					bul->rect = rect3[bul->direct];
-					SetNpChar(128, bul->x, bul->y, 0, 0, bul->direct, 0, 256);
-					break;
-			}
+				break;
+
+			case 3:
+				bul->rect = rect3[bul->direct];
+				SetNpChar(128, bul->x, bul->y, 0, 0, bul->direct, NULL, 0x100);
+				break;
 		}
 	}
 }
@@ -892,16 +893,16 @@
 		switch (bul->direct)
 		{
 			case 0:
-				SetCaret(bul->x + 0x1000, bul->y, 7, 2);
+				SetCaret(bul->x + (8 * 0x200), bul->y, 7, 2);
 				break;
 			case 1:
-				SetCaret(bul->x, bul->y + 0x1000, 7, 3);
+				SetCaret(bul->x, bul->y + (8 * 0x200), 7, 3);
 				break;
 			case 2:
-				SetCaret(bul->x - 0x1000, bul->y, 7, 0);
+				SetCaret(bul->x - (8 * 0x200), bul->y, 7, 0);
 				break;
 			case 3:
-				SetCaret(bul->x, bul->y - 0x1000, 7, 1);
+				SetCaret(bul->x, bul->y - (8 * 0x200), 7, 1);
 				break;
 		}
 	}
@@ -968,22 +969,23 @@
 			{
 				case 1:
 					if (bul->act_wait % 3 == 0)
-						SetDestroyNpCharUp(bul->x + (Random(-16, 16) << 9), bul->y + (Random(-16, 16) << 9), bul->enemyXL, 2);
+						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) << 9), bul->y + (Random(-32, 32) << 9), bul->enemyXL, 2);
+						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) << 9), bul->y + (Random(-40, 40) << 9), bul->enemyXL, 2);
+						SetDestroyNpCharUp(bul->x + (Random(-40, 40) * 0x200), bul->y + (Random(-40, 40) * 0x200), bul->enemyXL, 2);
 					break;
 			}
 
 			if (--bul->act_wait < 0)
 				bul->cond = 0;
+
 			break;
 	}
 }
@@ -996,74 +998,73 @@
 	{
 		bul->cond = 0;
 		SetCaret(bul->x, bul->y, 2, 0);
+		return;
 	}
-	else
+
+	switch (bul->act_no)
 	{
-		switch (bul->act_no)
-		{
-			case 0:
-				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;
-		}
+			break;
+	}
 
-		switch (bul->direct)
-		{
-			case 0:
-				bul->xm += 42;
-				break;
-			case 2:
-				bul->xm -= 42;
-				break;
-			case 1:
-				bul->ym += 42;
-				break;
-			case 3:
-				bul->ym -= 42;
-				break;
-		}
+	switch (bul->direct)
+	{
+		case 0:
+			bul->xm += 0x2A;
+			break;
+		case 2:
+			bul->xm -= 0x2A;
+			break;
+		case 1:
+			bul->ym += 0x2A;
+			break;
+		case 3:
+			bul->ym -= 0x2A;
+			break;
+	}
 
-		bul->x += bul->xm;
-		bul->y += bul->ym;
+	bul->x += bul->xm;
+	bul->y += bul->ym;
 
-		if (++bul->act_wait > 40)
-		{
-			bul->cond = 0;
-			SetCaret(bul->x, bul->y, 15, 0);
-		}
+	if (++bul->act_wait > 40)
+	{
+		bul->cond = 0;
+		SetCaret(bul->x, bul->y, 15, 0);
+	}
 
-		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)
+	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)
-		{
-			bul->ani_wait = 0;
-			++bul->ani_no;
-		}
+	if (++bul->ani_wait > 3)
+	{
+		bul->ani_wait = 0;
+		++bul->ani_no;
+	}
 
-		if (bul->ani_no > 3)
-			bul->ani_no = 3;
+	if (bul->ani_no > 3)
+		bul->ani_no = 3;
 
-		bul->rect = rect[bul->ani_no];
-	}
+	bul->rect = rect[bul->ani_no];
 }
 
 void ActBullet_Bubblin2(BULLET *bul)
@@ -1086,78 +1087,77 @@
 	{
 		bul->cond = 0;
 		SetCaret(bul->x, bul->y, 2, 0);
+		return;
 	}
-	else
+
+	switch (bul->act_no)
 	{
-		switch (bul->act_no)
-		{
-			case 0:
-				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;
-		}
+			break;
+	}
 
-		switch (bul->direct)
-		{
-			case 0:
-				bul->xm += 0x10;
-				break;
-			case 2:
-				bul->xm -= 0x10;
-				break;
-			case 1:
-				bul->ym += 0x10;
-				break;
-			case 3:
-				bul->ym -= 0x10;
-				break;
-		}
+	switch (bul->direct)
+	{
+		case 0:
+			bul->xm += 0x10;
+			break;
+		case 2:
+			bul->xm -= 0x10;
+			break;
+		case 1:
+			bul->ym += 0x10;
+			break;
+		case 3:
+			bul->ym -= 0x10;
+			break;
+	}
 
-		bul->x += bul->xm;
-		bul->y += bul->ym;
+	bul->x += bul->xm;
+	bul->y += bul->ym;
 
-		if (++bul->act_wait > 60)
-		{
-			bul->cond = 0;
-			SetCaret(bul->x, bul->y, 15, 0);
-		}
+	if (++bul->act_wait > 60)
+	{
+		bul->cond = 0;
+		SetCaret(bul->x, bul->y, 15, 0);
+	}
 
-		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)
+	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)
-		{
-			bul->ani_wait = 0;
-			++bul->ani_no;
-		}
+	if (++bul->ani_wait > 3)
+	{
+		bul->ani_wait = 0;
+		++bul->ani_no;
+	}
 
-		if (bul->ani_no > 3)
-			bul->ani_no = 3;
+	if (bul->ani_no > 3)
+		bul->ani_no = 3;
 
-		bul->rect = rect[bul->ani_no];
-	}
+	bul->rect = rect[bul->ani_no];
 }
 
 void ActBullet_Bubblin3(BULLET *bul)
@@ -1174,78 +1174,78 @@
 			SetBullet(22, bul->x, bul->y, 3);
 		else
 			SetBullet(22, bul->x, bul->y, gMC.direct);
+
+		return;
 	}
-	else
+
+	switch (bul->act_no)
 	{
-		switch (bul->act_no)
-		{
-			case 0:
-				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 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;
-				}
+			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;
-		}
+			break;
+	}
 
-		if (bul->x < gMC.x)
-			bul->xm += 0x20;
-		if (bul->x > gMC.x)
-			bul->xm -= 0x20;
+	if (bul->x < gMC.x)
+		bul->xm += 0x20;
+	if (bul->x > gMC.x)
+		bul->xm -= 0x20;
 
-		if (bul->y < gMC.y)
-			bul->ym += 0x20;
-		if (bul->y > gMC.y)
-			bul->ym -= 0x20;
+	if (bul->y < gMC.y)
+		bul->ym += 0x20;
+	if (bul->y > gMC.y)
+		bul->ym -= 0x20;
 
-		if (bul->xm < 0 && bul->flag & 1)
-			bul->xm = 0x400;
-		if (bul->xm > 0 && bul->flag & 4)
-			bul->xm = -0x400;
+	if (bul->xm < 0 && bul->flag & 1)
+		bul->xm = 0x400;
+	if (bul->xm > 0 && bul->flag & 4)
+		bul->xm = -0x400;
 
-		if (bul->ym < 0 && bul->flag & 2)
-			bul->ym = 0x400;
-		if (bul->ym > 0 && bul->flag & 8)
-			bul->ym = -0x400;
+	if (bul->ym < 0 && bul->flag & 2)
+		bul->ym = 0x400;
+	if (bul->ym > 0 && bul->flag & 8)
+		bul->ym = -0x400;
 
-		bul->x += bul->xm;
-		bul->y += bul->ym;
+	bul->x += bul->xm;
+	bul->y += bul->ym;
 
-		RECT rect[4] = {
-			{240, 16, 248, 24},
-			{248, 16, 256, 24},
-			{240, 24, 248, 32},
-			{248, 24, 256, 32},
-		};
+	RECT rect[4] = {
+		{240, 16, 248, 24},
+		{248, 16, 256, 24},
+		{240, 24, 248, 32},
+		{248, 24, 256, 32},
+	};
 
-		if (++bul->ani_wait > 3)
-		{
-			bul->ani_wait = 0;
-			++bul->ani_no;
-		}
+	if (++bul->ani_wait > 3)
+	{
+		bul->ani_wait = 0;
+		++bul->ani_no;
+	}
 
-		if (bul->ani_no > 3)
-			bul->ani_no = 3;
+	if (bul->ani_no > 3)
+		bul->ani_no = 3;
 
-		bul->rect = rect[bul->ani_no];
-	}
+	bul->rect = rect[bul->ani_no];
 }
 
 void ActBullet_Spine(BULLET *bul)
@@ -1254,75 +1254,74 @@
 	{
 		bul->cond = 0;
 		SetCaret(bul->x, bul->y, 3, 0);
+		return;
 	}
-	else
+
+	if (bul->act_no == 0)
 	{
-		if (bul->act_no == 0)
-		{
-			bul->act_no = 1;
+		bul->act_no = 1;
 
-			switch (bul->direct)
-			{
-				case 0:
-					bul->xm = (-Random(10, 16) * 0x200) / 2;
-					break;
-				case 1:
-					bul->ym = (-Random(10, 16) * 0x200) / 2;
-					break;
-				case 2:
-					bul->xm = (Random(10, 16) * 0x200) / 2;
-					break;
-				case 3:
-					bul->ym = (Random(10, 16) * 0x200) / 2;
-					break;
-			}
-		}
-		else
-		{
-			bul->x += bul->xm;
-			bul->y += bul->ym;
-		}
-
-		if (++bul->ani_wait > 1)
-		{
-			bul->ani_wait = 0;
-			++bul->ani_no;
-		}
-
-		if (bul->ani_no > 1)
-			bul->ani_no = 0;
-
-		RECT rcLeft[2] = {
-			{224, 0, 232, 8},
-			{232, 0, 240, 8},
-		};
-
-		RECT rcRight[2] = {
-			{224, 0, 232, 8},
-			{232, 0, 240, 8},
-		};
-
-		RECT rcDown[2] = {
-			{224, 8, 232, 16},
-			{232, 8, 240, 16},
-		};
-
 		switch (bul->direct)
 		{
 			case 0:
-				bul->rect = rcLeft[bul->ani_no];
+				bul->xm = (-Random(10, 16) * 0x200) / 2;
 				break;
 			case 1:
-				bul->rect = rcDown[bul->ani_no];
+				bul->ym = (-Random(10, 16) * 0x200) / 2;
 				break;
 			case 2:
-				bul->rect = rcRight[bul->ani_no];
+				bul->xm = (Random(10, 16) * 0x200) / 2;
 				break;
 			case 3:
-				bul->rect = rcDown[bul->ani_no];
+				bul->ym = (Random(10, 16) * 0x200) / 2;
 				break;
 		}
 	}
+	else
+	{
+		bul->x += bul->xm;
+		bul->y += bul->ym;
+	}
+
+	if (++bul->ani_wait > 1)
+	{
+		bul->ani_wait = 0;
+		++bul->ani_no;
+	}
+
+	if (bul->ani_no > 1)
+		bul->ani_no = 0;
+
+	RECT rcLeft[2] = {
+		{224, 0, 232, 8},
+		{232, 0, 240, 8},
+	};
+
+	RECT rcRight[2] = {
+		{224, 0, 232, 8},
+		{232, 0, 240, 8},
+	};
+
+	RECT rcDown[2] = {
+		{224, 8, 232, 16},
+		{232, 8, 240, 16},
+	};
+
+	switch (bul->direct)
+	{
+		case 0:
+			bul->rect = rcLeft[bul->ani_no];
+			break;
+		case 1:
+			bul->rect = rcDown[bul->ani_no];
+			break;
+		case 2:
+			bul->rect = rcRight[bul->ani_no];
+			break;
+		case 3:
+			bul->rect = rcDown[bul->ani_no];
+			break;
+	}
 }
 
 void ActBullet_Sword1(BULLET *bul)
@@ -1331,69 +1330,68 @@
 	{
 		bul->cond = 0;
 		SetCaret(bul->x, bul->y, 3, 0);
+		return;
 	}
-	else
-	{
-		if (bul->count1 == 3)
-			bul->bbits &= ~4;
 
-		if (bul->count1 % 5 == 1)
-			PlaySoundObject(34, 1);
+	if (bul->count1 == 3)
+		bul->bbits &= ~4;
 
-		if (bul->act_no == 0)
-		{
-			bul->act_no = 1;
+	if (bul->count1 % 5 == 1)
+		PlaySoundObject(34, 1);
 
-			switch (bul->direct)
-			{
-				case 0:
-					bul->xm = -0x800;
-					break;
-				case 1:
-					bul->ym = -0x800;
-					break;
-				case 2:
-					bul->xm = 0x800;
-					break;
-				case 3:
-					bul->ym = 0x800;
-					break;
-			}
-		}
-		else
+	if (bul->act_no == 0)
+	{
+		bul->act_no = 1;
+
+		switch (bul->direct)
 		{
-			bul->x += bul->xm;
-			bul->y += bul->ym;
+			case 0:
+				bul->xm = -0x800;
+				break;
+			case 1:
+				bul->ym = -0x800;
+				break;
+			case 2:
+				bul->xm = 0x800;
+				break;
+			case 3:
+				bul->ym = 0x800;
+				break;
 		}
+	}
+	else
+	{
+		bul->x += bul->xm;
+		bul->y += bul->ym;
+	}
 
-		RECT rcLeft[4] = {
-			{0, 48, 16, 64},
-			{16, 48, 32, 64},
-			{32, 48, 48, 64},
-			{48, 48, 64, 64},
-		};
+	RECT rcLeft[4] = {
+		{0, 48, 16, 64},
+		{16, 48, 32, 64},
+		{32, 48, 48, 64},
+		{48, 48, 64, 64},
+	};
 
-		RECT rcRight[4] = {
-			{64, 48, 80, 64},
-			{80, 48, 96, 64},
-			{96, 48, 112, 64},
-			{112, 48, 128, 64},
-		};
+	RECT rcRight[4] = {
+		{64, 48, 80, 64},
+		{80, 48, 96, 64},
+		{96, 48, 112, 64},
+		{112, 48, 128, 64},
+	};
 
-		if (++bul->ani_wait > 1)
-		{
-			bul->ani_wait = 0;
-			++bul->ani_no;
-		}
+	if (++bul->ani_wait > 1)
+	{
+		bul->ani_wait = 0;
+		++bul->ani_no;
+	}
 
-		if (bul->ani_no > 3)
-			bul->ani_no = 0;
+	if (bul->ani_no > 3)
+		bul->ani_no = 0;
 
-		if (bul->direct == 0)
-			bul->rect = rcLeft[bul->ani_no];
-		else
-			bul->rect = rcRight[bul->ani_no];
-	}
+	if (bul->direct == 0)
+		bul->rect = rcLeft[bul->ani_no];
+	else
+		bul->rect = rcRight[bul->ani_no];
 }
 
 void ActBullet_Sword2(BULLET *bul)
@@ -1402,69 +1400,68 @@
 	{
 		bul->cond = 0;
 		SetCaret(bul->x, bul->y, 3, 0);
+		return;
 	}
-	else
-	{
-		if (bul->count1 == 3)
-			bul->bbits &= ~4;
 
-		if (bul->count1 % 7 == 1)
-			PlaySoundObject(106, 1);
+	if (bul->count1 == 3)
+		bul->bbits &= ~4;
 
-		if (bul->act_no == 0)
-		{
-			bul->act_no = 1;
+	if (bul->count1 % 7 == 1)
+		PlaySoundObject(106, 1);
 
-			switch (bul->direct)
-			{
-				case 0:
-					bul->xm = -0x800;
-					break;
-				case 1:
-					bul->ym = -0x800;
-					break;
-				case 2:
-					bul->xm = 0x800;
-					break;
-				case 3:
-					bul->ym = 0x800;
-					break;
-			}
-		}
-		else
+	if (bul->act_no == 0)
+	{
+		bul->act_no = 1;
+
+		switch (bul->direct)
 		{
-			bul->x += bul->xm;
-			bul->y += bul->ym;
+			case 0:
+				bul->xm = -0x800;
+				break;
+			case 1:
+				bul->ym = -0x800;
+				break;
+			case 2:
+				bul->xm = 0x800;
+				break;
+			case 3:
+				bul->ym = 0x800;
+				break;
 		}
+	}
+	else
+	{
+		bul->x += bul->xm;
+		bul->y += bul->ym;
+	}
 
-		RECT rcLeft[4] = {
-			{160, 48, 184, 72},
-			{184, 48, 208, 72},
-			{208, 48, 232, 72},
-			{232, 48, 256, 72},
-		};
+	RECT rcLeft[4] = {
+		{160, 48, 184, 72},
+		{184, 48, 208, 72},
+		{208, 48, 232, 72},
+		{232, 48, 256, 72},
+	};
 
-		RECT rcRight[4] = {
-			{160, 72, 184, 96},
-			{184, 72, 208, 96},
-			{208, 72, 232, 96},
-			{232, 72, 256, 96},
-		};
+	RECT rcRight[4] = {
+		{160, 72, 184, 96},
+		{184, 72, 208, 96},
+		{208, 72, 232, 96},
+		{232, 72, 256, 96},
+	};
 
-		if (++bul->ani_wait > 1)
-		{
-			bul->ani_wait = 0;
-			++bul->ani_no;
-		}
+	if (++bul->ani_wait > 1)
+	{
+		bul->ani_wait = 0;
+		++bul->ani_no;
+	}
 
-		if (bul->ani_no > 3)
-			bul->ani_no = 0;
+	if (bul->ani_no > 3)
+		bul->ani_no = 0;
 
-		if (bul->direct == 0)
-			bul->rect = rcLeft[bul->ani_no];
-		else
-			bul->rect = rcRight[bul->ani_no];
-	}
+	if (bul->direct == 0)
+		bul->rect = rcLeft[bul->ani_no];
+	else
+		bul->rect = rcRight[bul->ani_no];
 }
 
 void ActBullet_Sword3(BULLET *bul)
@@ -1591,12 +1588,12 @@
 	{
 		case 0:
 			bul->act_no = 1;
-			bul->y -= 0x1800;
+			bul->y -= 12 * 0x200;
 
 			if (bul->direct == 0)
-				bul->x += 0x2000;
+				bul->x += 16 * 0x200;
 			else
-				bul->x -= 0x2000;
+				bul->x -= 16 * 0x200;
 			// Fallthrough
 		case 1:
 			if (++bul->ani_wait > 2)
@@ -1606,11 +1603,11 @@
 			}
 
 			if (bul->direct == 0)
-				bul->x -= 0x400;
+				bul->x -= 2 * 0x200;
 			else
-				bul->x += 0x400;
+				bul->x += 2 * 0x200;
 
-			bul->y += 0x400;
+			bul->y += 2 * 0x200;
 
 			if (bul->ani_no == 1)
 				bul->damage = 2;
@@ -1823,16 +1820,16 @@
 		switch (bul->direct)
 		{
 			case 0:
-				SetCaret(bul->x + 0x1000, bul->y, 7, 2);
+				SetCaret(bul->x + (8 * 0x200), bul->y, 7, 2);
 				break;
 			case 1:
-				SetCaret(bul->x, bul->y + 0x1000, 7, 3);
+				SetCaret(bul->x, bul->y + (8 * 0x200), 7, 3);
 				break;
 			case 2:
-				SetCaret(bul->x - 0x1000, bul->y, 7, 0);
+				SetCaret(bul->x - (8 * 0x200), bul->y, 7, 0);
 				break;
 			case 3:
-				SetCaret(bul->x, bul->y - 0x1000, 7, 1);
+				SetCaret(bul->x, bul->y - (8 * 0x200), 7, 1);
 				break;
 		}
 	}
@@ -1917,234 +1914,232 @@
 	{
 		bul->cond = 0;
 		SetCaret(bul->x, bul->y, 3, 0);
+		return;
 	}
-	else
+
+	if (bul->act_no == 0)
 	{
-		if (bul->act_no == 0)
-		{
-			bul->act_no = 1;
-			bul->count1 = 0;
+		bul->act_no = 1;
+		bul->count1 = 0;
 
-			switch (bul->direct)
-			{
-				case 0:
-					bul->xm = -0x1000;
-					break;
-				case 1:
-					bul->ym = -0x1000;
-					break;
-				case 2:
-					bul->xm = 0x1000;
-					break;
-				case 3:
-					bul->ym = 0x1000;
-					break;
-			}
-
-			switch (level)
-			{
-				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;
-
-		RECT rcL[2] = {
-			{0, 112, 32, 128},
-			{0, 128, 32, 144},
-		};
-
-		RECT rcU[2] = {
-			{32, 112, 48, 144},
-			{48, 112, 64, 144},
-		};
-
-		RECT rcR[2] = {
-			{64, 112, 96, 128},
-			{64, 128, 96, 144},
-		};
-
-		RECT rcD[2] = {
-			{96, 112, 112, 144},
-			{112, 112, 128, 144},
-		};
-
 		switch (bul->direct)
 		{
 			case 0:
-				bul->rect = rcL[bul->ani_no];
+				bul->xm = -0x1000;
 				break;
 			case 1:
-				bul->rect = rcU[bul->ani_no];
+				bul->ym = -0x1000;
 				break;
 			case 2:
-				bul->rect = rcR[bul->ani_no];
+				bul->xm = 0x1000;
 				break;
 			case 3:
-				bul->rect = rcD[bul->ani_no];
+				bul->ym = 0x1000;
 				break;
 		}
 
-		bul->rect.top += 32 * ((level - 1) / 2);
-		bul->rect.bottom += 32 * ((level - 1) / 2);
-		bul->rect.left += (level - 1) % 2 << 7;
-		bul->rect.right += (level - 1) % 2 << 7;
+		switch (level)
+		{
+			case 3:
+				bul->xm /= 3;
+				bul->ym /= 3;
+				break;
+		}
 	}
-}
-
-void ActBullet_Spur(BULLET *bul, int level)
-{
-	if (++bul->count1 > bul->life_count)
-	{
-		bul->cond = 0;
-		SetCaret(bul->x, bul->y, 3, 0);
-	}
 	else
 	{
-		if (bul->damage && bul->life != 100)
-			bul->damage = 0;
-
-		if (bul->act_no == 0)
+		if (level == 1 && bul->count1 % 4 == 1)
 		{
-			bul->act_no = 1;
-
 			switch (bul->direct)
 			{
 				case 0:
-					bul->xm = -0x1000;
+					SetNpChar(4, bul->x, bul->y, -0x200, Random(-0x200, 0x200), 2, NULL, 0x100);
 					break;
 				case 1:
-					bul->ym = -0x1000;
+					SetNpChar(4, bul->x, bul->y, Random(-0x200, 0x200), -0x200, 2, NULL, 0x100);
 					break;
 				case 2:
-					bul->xm = 0x1000;
+					SetNpChar(4, bul->x, bul->y, 0x200, Random(-0x200, 0x200), 2, NULL, 0x100);
 					break;
 				case 3:
-					bul->ym = 0x1000;
+					SetNpChar(4, bul->x, bul->y, Random(-0x200, 0x200), 0x200, 2, NULL, 0x100);
 					break;
 			}
+		}
 
-			switch (level)
-			{
-				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;
-					}
+		bul->x += bul->xm;
+		bul->y += bul->ym;
+	}
 
-					break;
+	if (++bul->ani_no > 1)
+		bul->ani_no = 0;
 
-				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;
-					}
+	RECT rcL[2] = {
+		{0, 112, 32, 128},
+		{0, 128, 32, 144},
+	};
 
-					break;
-			}
-		}
-		else
-		{
-			bul->x += bul->xm;
-			bul->y += bul->ym;
-		}
+	RECT rcU[2] = {
+		{32, 112, 48, 144},
+		{48, 112, 64, 144},
+	};
 
-		RECT rect1[2] = {
-			{128, 32, 144, 48},
-			{144, 32, 160, 48},
-		};
+	RECT rcR[2] = {
+		{64, 112, 96, 128},
+		{64, 128, 96, 144},
+	};
 
-		RECT rect2[2] = {
-			{160, 32, 176, 48},
-			{176, 32, 192, 48},
-		};
+	RECT rcD[2] = {
+		{96, 112, 112, 144},
+		{112, 112, 128, 144},
+	};
 
-		RECT rect3[2] = {
-			{128, 48, 144, 64},
-			{144, 48, 160, 64},
-		};
+	switch (bul->direct)
+	{
+		case 0:
+			bul->rect = rcL[bul->ani_no];
+			break;
+		case 1:
+			bul->rect = rcU[bul->ani_no];
+			break;
+		case 2:
+			bul->rect = rcR[bul->ani_no];
+			break;
+		case 3:
+			bul->rect = rcD[bul->ani_no];
+			break;
+	}
 
-		bul->damage = bul->life;
+	bul->rect.top += ((level - 1) / 2) * 32;
+	bul->rect.bottom += ((level - 1) / 2) * 32;
+	bul->rect.left += ((level - 1) % 2) * 128;
+	bul->rect.right += ((level - 1) % 2) * 128;
+}
 
+void ActBullet_Spur(BULLET *bul, int level)
+{
+	if (++bul->count1 > bul->life_count)
+	{
+		bul->cond = 0;
+		SetCaret(bul->x, bul->y, 3, 0);
+		return;
+	}
+
+	if (bul->damage && bul->life != 100)
+		bul->damage = 0;
+
+	if (bul->act_no == 0)
+	{
+		bul->act_no = 1;
+
+		switch (bul->direct)
+		{
+			case 0:
+				bul->xm = -0x1000;
+				break;
+			case 1:
+				bul->ym = -0x1000;
+				break;
+			case 2:
+				bul->xm = 0x1000;
+				break;
+			case 3:
+				bul->ym = 0x1000;
+				break;
+		}
+
 		switch (level)
 		{
 			case 1:
-				if (bul->direct == 1 || bul->direct == 3)
-					bul->rect = rect1[1];
-				else
-					bul->rect = rect1[0];
+				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:
-				if (bul->direct == 1 || bul->direct == 3)
-					bul->rect = rect2[1];
-				else
-					bul->rect = rect2[0];
+				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
+	{
+		bul->x += bul->xm;
+		bul->y += bul->ym;
+	}
 
-			case 3:
-				if (bul->direct == 1 || bul->direct == 3)
-					bul->rect = rect3[1];
-				else
-					bul->rect = rect3[0];
+	RECT rect1[2] = {
+		{128, 32, 144, 48},
+		{144, 32, 160, 48},
+	};
 
-				break;
-		}
+	RECT rect2[2] = {
+		{160, 32, 176, 48},
+		{176, 32, 192, 48},
+	};
 
-		SetBullet(level + 39, bul->x, bul->y, bul->direct);
+	RECT rect3[2] = {
+		{128, 48, 144, 64},
+		{144, 48, 160, 64},
+	};
+
+	bul->damage = bul->life;
+
+	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;
 	}
+
+	SetBullet(39 + level, bul->x, bul->y, bul->direct);
 }
 
 void ActBullet_SpurTail(BULLET *bul, int level)
@@ -2151,8 +2146,10 @@
 {
 	if (++bul->count1 > 20)
 		bul->ani_no = bul->count1 - 20;
+
 	if (bul->ani_no > 2)
 		bul->cond = 0;
+
 	if (bul->damage && bul->life != 100)
 		bul->damage = 0;
 
@@ -2225,13 +2222,12 @@
 	if (++bul->count1 > bul->life_count)
 	{
 		bul->cond = 0;
+		return;
 	}
-	else
-	{
-		bul->damage = 10000;
-		bul->enemyXL = 0xC8000;
-		bul->enemyYL = 0xC8000;
-	}
+
+	bul->damage = 10000;
+	bul->enemyXL = 0xC8000;
+	bul->enemyYL = 0xC8000;
 }
 
 void ActBullet_Star(BULLET *bul)
@@ -2240,9 +2236,11 @@
 		bul->cond = 0;
 }
 
-void ActBullet()
+void ActBullet(void)
 {
-	for (int i = 0; i < BULLET_MAX; i++)
+	int i;
+
+	for (i = 0; i < BULLET_MAX; ++i)
 	{
 		if (gBul[i].cond & 0x80)
 		{
@@ -2251,146 +2249,144 @@
 				gBul[i].cond = 0;
 				continue;
 			}
-			else
+
+			switch (gBul[i].code_bullet)
 			{
-				switch (gBul[i].code_bullet)
-				{
-					case 1:
-						ActBullet_Frontia1(&gBul[i]);
-						break;
-					case 2:
-						ActBullet_Frontia2(&gBul[i], 2);
-						break;
-					case 3:
-						ActBullet_Frontia2(&gBul[i], 3);
-						break;
-					case 4:
-						ActBullet_PoleStar(&gBul[i], 1);
-						break;
-					case 5:
-						ActBullet_PoleStar(&gBul[i], 2);
-						break;
-					case 6:
-						ActBullet_PoleStar(&gBul[i], 3);
-						break;
-					case 7:
-						ActBullet_FireBall(&gBul[i], 1);
-						break;
-					case 8:
-						ActBullet_FireBall(&gBul[i], 2);
-						break;
-					case 9:
-						ActBullet_FireBall(&gBul[i], 3);
-						break;
-					case 10:
-						ActBullet_MachineGun(&gBul[i], 1);
-						break;
-					case 11:
-						ActBullet_MachineGun(&gBul[i], 2);
-						break;
-					case 12:
-						ActBullet_MachineGun(&gBul[i], 3);
-						break;
-					case 13:
-						ActBullet_Missile(&gBul[i], 1);
-						break;
-					case 14:
-						ActBullet_Missile(&gBul[i], 2);
-						break;
-					case 15:
-						ActBullet_Missile(&gBul[i], 3);
-						break;
-					case 16:
-						ActBullet_Bom(&gBul[i], 1);
-						break;
-					case 17:
-						ActBullet_Bom(&gBul[i], 2);
-						break;
-					case 18:
-						ActBullet_Bom(&gBul[i], 3);
-						break;
-					case 19:
-						ActBullet_Bubblin1(&gBul[i]);
-						break;
-					case 20:
-						ActBullet_Bubblin2(&gBul[i]);
-						break;
-					case 21:
-						ActBullet_Bubblin3(&gBul[i]);
-						break;
-					case 22:
-						ActBullet_Spine(&gBul[i]);
-						break;
-					case 23:
-						ActBullet_Edge(&gBul[i]);
-						break;
-					case 24:
-						ActBullet_Drop(&gBul[i]);
-						break;
-					case 25:
-						ActBullet_Sword1(&gBul[i]);
-						break;
-					case 26:
-						ActBullet_Sword2(&gBul[i]);
-						break;
-					case 27:
-						ActBullet_Sword3(&gBul[i]);
-						break;
-					case 28:
-						ActBullet_SuperMissile(&gBul[i], 1);
-						break;
-					case 29:
-						ActBullet_SuperMissile(&gBul[i], 2);
-						break;
-					case 30:
-						ActBullet_SuperMissile(&gBul[i], 3);
-						break;
-					case 31:
-						ActBullet_SuperBom(&gBul[i], 1);
-						break;
-					case 32:
-						ActBullet_SuperBom(&gBul[i], 2);
-						break;
-					case 33:
-						ActBullet_SuperBom(&gBul[i], 3);
-						break;
-					case 34:	// Identical to case 43
-						ActBullet_Nemesis(&gBul[i], 1);
-						break;
-					case 35:
-						ActBullet_Nemesis(&gBul[i], 2);
-						break;
-					case 36:
-						ActBullet_Nemesis(&gBul[i], 3);
-						break;
-					case 37:
-						ActBullet_Spur(&gBul[i], 1);
-						break;
-					case 38:
-						ActBullet_Spur(&gBul[i], 2);
-						break;
-					case 39:
-						ActBullet_Spur(&gBul[i], 3);
-						break;
-					case 40:
-						ActBullet_SpurTail(&gBul[i], 1);
-						break;
-					case 41:
-						ActBullet_SpurTail(&gBul[i], 2);
-						break;
-					case 42:
-						ActBullet_SpurTail(&gBul[i], 3);
-						break;
-					case 43:	// Identical to case 34
-						ActBullet_Nemesis(&gBul[i], 1);
-						break;
-					case 44:
-						ActBullet_EnemyClear(&gBul[i]);
-						break;
-					case 45:
-						ActBullet_Star(&gBul[i]);
-						break;
-				}
+				case 1:
+					ActBullet_Frontia1(&gBul[i]);
+					break;
+				case 2:
+					ActBullet_Frontia2(&gBul[i], 2);
+					break;
+				case 3:
+					ActBullet_Frontia2(&gBul[i], 3);
+					break;
+				case 4:
+					ActBullet_PoleStar(&gBul[i], 1);
+					break;
+				case 5:
+					ActBullet_PoleStar(&gBul[i], 2);
+					break;
+				case 6:
+					ActBullet_PoleStar(&gBul[i], 3);
+					break;
+				case 7:
+					ActBullet_FireBall(&gBul[i], 1);
+					break;
+				case 8:
+					ActBullet_FireBall(&gBul[i], 2);
+					break;
+				case 9:
+					ActBullet_FireBall(&gBul[i], 3);
+					break;
+				case 10:
+					ActBullet_MachineGun(&gBul[i], 1);
+					break;
+				case 11:
+					ActBullet_MachineGun(&gBul[i], 2);
+					break;
+				case 12:
+					ActBullet_MachineGun(&gBul[i], 3);
+					break;
+				case 13:
+					ActBullet_Missile(&gBul[i], 1);
+					break;
+				case 14:
+					ActBullet_Missile(&gBul[i], 2);
+					break;
+				case 15:
+					ActBullet_Missile(&gBul[i], 3);
+					break;
+				case 16:
+					ActBullet_Bom(&gBul[i], 1);
+					break;
+				case 17:
+					ActBullet_Bom(&gBul[i], 2);
+					break;
+				case 18:
+					ActBullet_Bom(&gBul[i], 3);
+					break;
+				case 19:
+					ActBullet_Bubblin1(&gBul[i]);
+					break;
+				case 20:
+					ActBullet_Bubblin2(&gBul[i]);
+					break;
+				case 21:
+					ActBullet_Bubblin3(&gBul[i]);
+					break;
+				case 22:
+					ActBullet_Spine(&gBul[i]);
+					break;
+				case 23:
+					ActBullet_Edge(&gBul[i]);
+					break;
+				case 24:
+					ActBullet_Drop(&gBul[i]);
+					break;
+				case 25:
+					ActBullet_Sword1(&gBul[i]);
+					break;
+				case 26:
+					ActBullet_Sword2(&gBul[i]);
+					break;
+				case 27:
+					ActBullet_Sword3(&gBul[i]);
+					break;
+				case 28:
+					ActBullet_SuperMissile(&gBul[i], 1);
+					break;
+				case 29:
+					ActBullet_SuperMissile(&gBul[i], 2);
+					break;
+				case 30:
+					ActBullet_SuperMissile(&gBul[i], 3);
+					break;
+				case 31:
+					ActBullet_SuperBom(&gBul[i], 1);
+					break;
+				case 32:
+					ActBullet_SuperBom(&gBul[i], 2);
+					break;
+				case 33:
+					ActBullet_SuperBom(&gBul[i], 3);
+					break;
+				case 34:	// Identical to case 43
+					ActBullet_Nemesis(&gBul[i], 1);
+					break;
+				case 35:
+					ActBullet_Nemesis(&gBul[i], 2);
+					break;
+				case 36:
+					ActBullet_Nemesis(&gBul[i], 3);
+					break;
+				case 37:
+					ActBullet_Spur(&gBul[i], 1);
+					break;
+				case 38:
+					ActBullet_Spur(&gBul[i], 2);
+					break;
+				case 39:
+					ActBullet_Spur(&gBul[i], 3);
+					break;
+				case 40:
+					ActBullet_SpurTail(&gBul[i], 1);
+					break;
+				case 41:
+					ActBullet_SpurTail(&gBul[i], 2);
+					break;
+				case 42:
+					ActBullet_SpurTail(&gBul[i], 3);
+					break;
+				case 43:	// Identical to case 34
+					ActBullet_Nemesis(&gBul[i], 1);
+					break;
+				case 44:
+					ActBullet_EnemyClear(&gBul[i]);
+					break;
+				case 45:
+					ActBullet_Star(&gBul[i]);
+					break;
 			}
 		}
 	}
@@ -2398,28 +2394,30 @@
 
 BOOL IsActiveSomeBullet(void)
 {
-	for (int i = 0; i < 0x40; ++i)
+	int i;
+
+	for (i = 0; i < BULLET_MAX; ++i)
 	{
 		if (gBul[i].cond & 0x80)
 		{
 			switch (gBul[i].code_bullet)
 			{
-				case 0xD:
-				case 0xE:
-				case 0xF:
-				case 0x10:
-				case 0x11:
-				case 0x12:
-				case 0x17:
-				case 0x19:
-				case 0x1A:
-				case 0x1B:
-				case 0x1C:
-				case 0x1D:
-				case 0x1E:
-				case 0x1F:
-				case 0x20:
-				case 0x21:
+				case 13:
+				case 14:
+				case 15:
+				case 16:
+				case 17:
+				case 18:
+				case 23:
+				case 25:
+				case 26:
+				case 27:
+				case 28:
+				case 29:
+				case 30:
+				case 31:
+				case 32:
+				case 33:
 					return TRUE;
 			}
 		}
--- a/src/Bullet.h
+++ b/src/Bullet.h
@@ -60,12 +60,12 @@
 #define BULLET_MAX 0x40
 extern BULLET gBul[BULLET_MAX];
 
-void InitBullet();
+void InitBullet(void);
 int CountArmsBullet(int arms_code);
 int CountBulletNum(int bullet_code);
 void DeleteBullet(int code);
-void ClearBullet();
+void ClearBullet(void);
 void PutBullet(int fx, int fy);
 void SetBullet(int no, int x, int y, int dir);
-void ActBullet();
+void ActBullet(void);
 BOOL IsActiveSomeBullet(void);