shithub: cstory

Download patch

ref: ec148c1072522c8b2c986f6fb12a4e358bbeca55
parent: 4d04590b2831dbdc70175c6f0131faf7d09b1cf2
author: Clownacy <Clownacy@users.noreply.github.com>
date: Tue Feb 19 17:30:43 EST 2019

Made the spriterects C++03-compatible

--- a/Makefile
+++ b/Makefile
@@ -110,11 +110,11 @@
 	PixTone \
 	Profile \
 	Resource \
+	SelStage \
 	Shoot \
 	Sound \
 	Stage \
 	Star \
-	SelStage \
 	TextScr \
 	Triangle \
 	ValueView
--- a/src/BossAlmo1.cpp
+++ b/src/BossAlmo1.cpp
@@ -13,13 +13,13 @@
 
 static void ActBossChar_Core_Face(NPCHAR *npc)
 {
-	RECT rect[4];
+	RECT rect[4] = {
+		{0, 0, 72, 112},
+		{0, 112, 72, 224},
+		{160, 0, 232, 112},
+		{0, 0, 0, 0},
+	};
 
-	rect[0] = {0, 0, 72, 112};
-	rect[1] = {0, 112, 72, 224};
-	rect[2] = {160, 0, 232, 112};
-	rect[3] = {0, 0, 0, 0};
-
 	switch (npc->act_no)
 	{
 		case 10:
@@ -62,12 +62,12 @@
 
 static void ActBossChar_Core_Tail(NPCHAR *npc)
 {
-	RECT rect[3];
+	RECT rect[3] = {
+		{72, 0, 160, 112},
+		{72, 112, 160, 224},
+		{0, 0, 0, 0},
+	};
 
-	rect[0] = {72, 0, 160, 112};
-	rect[1] = {72, 112, 160, 224};
-	rect[2] = {0, 0, 0, 0};
-
 	switch (npc->act_no)
 	{
 		case 10:
@@ -110,11 +110,11 @@
 
 static void ActBossChar_Core_Mini(NPCHAR *npc)
 {
-	RECT rect[3];
-
-	rect[0] = {256, 0, 320, 40};
-	rect[1] = {256, 40, 320, 80};
-	rect[2] = {256, 80, 320, 120};
+	RECT rect[3] = {
+		{256, 0, 320, 40},
+		{256, 40, 320, 80},
+		{256, 80, 320, 120},
+	};
 
 	npc->life = 1000;
 
--- a/src/BossAlmo2.cpp
+++ b/src/BossAlmo2.cpp
@@ -14,13 +14,13 @@
 
 static void ActBossCharA_Head(NPCHAR *npc)
 {
-	RECT rect[4];
+	RECT rect[4] = {
+		{0, 0, 72, 112},
+		{0, 112, 72, 224},
+		{160, 0, 232, 112},
+		{0, 0, 0, 0},
+	};
 
-	rect[0] = {0, 0, 72, 112};
-	rect[1] = {0, 112, 72, 224};
-	rect[2] = {160, 0, 232, 112};
-	rect[3] = {0, 0, 0, 0};
-
 	switch (npc->act_no)
 	{
 		case 10:
@@ -61,12 +61,12 @@
 
 static void ActBossCharA_Tail(NPCHAR *npc)
 {
-	RECT rect[3];
+	RECT rect[3] = {
+		{72, 0, 160, 112},
+		{72, 112, 160, 224},
+		{0, 0, 0, 0},
+	};
 
-	rect[0] = {72, 0, 160, 112};
-	rect[1] = {72, 112, 160, 224};
-	rect[2] = {0, 0, 0, 0};
-
 	switch (npc->act_no)
 	{
 		case 10:
@@ -107,14 +107,14 @@
 
 static void ActBossCharA_Face(NPCHAR *npc)
 {
-	RECT rect[5];
+	RECT rect[5] = {
+		{0, 0, 0, 0},
+		{160, 112, 232, 152},
+		{160, 152, 232, 192},
+		{160, 192, 232, 232},
+		{248, 160, 320, 200},
+	};
 
-	rect[0] = {0, 0, 0, 0};
-	rect[1] = {160, 112, 232, 152};
-	rect[2] = {160, 152, 232, 192};
-	rect[3] = {160, 192, 232, 232};
-	rect[4] = {248, 160, 320, 200};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -172,11 +172,11 @@
 
 static void ActBossCharA_Mini(NPCHAR *npc)
 {
-	RECT rect[3];
-
-	rect[0] = {256, 0, 320, 40};
-	rect[1] = {256, 40, 320, 80};
-	rect[2] = {256, 80, 320, 120};
+	RECT rect[3] = {
+		{256, 0, 320, 40},
+		{256, 40, 320, 80},
+		{256, 80, 320, 120},
+	};
 
 	if (npc->cond)
 	{
--- a/src/BossBallos.cpp
+++ b/src/BossBallos.cpp
@@ -13,21 +13,22 @@
 
 static void ActBossChar_Eye(NPCHAR *npc)
 {
-	RECT rcLeft[5];
-	RECT rcRight[5];
+	RECT rcLeft[5] = {
+		{272, 0, 296, 16},
+		{272, 16, 296, 32},
+		{272, 32, 296, 48},
+		{0, 0, 0, 0},
+		{240, 16, 264, 32},
+	};
 
-	rcLeft[0] = {272, 0, 296, 16};
-	rcLeft[1] = {272, 16, 296, 32};
-	rcLeft[2] = {272, 32, 296, 48};
-	rcLeft[3] = {0, 0, 0, 0};
-	rcLeft[4] = {240, 16, 264, 32};
+	RECT rcRight[5] = {
+		{296, 0, 320, 16},
+		{296, 16, 320, 32},
+		{296, 32, 320, 48},
+		{0, 0, 0, 0},
+		{240, 32, 264, 48},
+	};
 
-	rcRight[0] = {296, 0, 320, 16};
-	rcRight[1] = {296, 16, 320, 32};
-	rcRight[2] = {296, 32, 320, 48};
-	rcRight[3] = {0, 0, 0, 0};
-	rcRight[4] = {240, 32, 264, 48};
-
 	switch (npc->act_no)
 	{
 		case 100:
@@ -103,12 +104,12 @@
 
 static void ActBossChar_Body(NPCHAR *npc)
 {
-	RECT rc[4];
-
-	rc[0] = {0, 0, 120, 120};
-	rc[1] = {120, 0, 240, 120};
-	rc[2] = {0, 120, 120, 240};
-	rc[3] = {120, 120, 240, 240};
+	RECT rc[4] = {
+		{0, 0, 120, 120},
+		{120, 0, 240, 120},
+		{0, 120, 120, 240},
+		{120, 120, 240, 240},
+	};
 
 	npc->x = gBoss[0].x;
 	npc->y = gBoss[0].y;
--- a/src/BossFrog.cpp
+++ b/src/BossFrog.cpp
@@ -78,28 +78,29 @@
 
 void ActBossChar_Frog(void)
 {
-	RECT rcLeft[9];
-	RECT rcRight[9];
+	RECT rcLeft[9] = {
+		{0, 0, 0, 0},
+		{0, 48, 80, 112},
+		{0, 112, 80, 176},
+		{0, 176, 80, 240},
+		{160, 48, 240, 112},
+		{160, 112, 240, 200},
+		{200, 0, 240, 24},
+		{80, 0, 120, 24},
+		{120, 0, 160, 24},
+	};
 
-	rcLeft[0] = {0, 0, 0, 0};
-	rcLeft[1] = {0, 48, 80, 112};
-	rcLeft[2] = {0, 112, 80, 176};
-	rcLeft[3] = {0, 176, 80, 240};
-	rcLeft[4] = {160, 48, 240, 112};
-	rcLeft[5] = {160, 112, 240, 200};
-	rcLeft[6] = {200, 0, 240, 24};
-	rcLeft[7] = {80, 0, 120, 24};
-	rcLeft[8] = {120, 0, 160, 24};
-
-	rcRight[0] = {0, 0, 0, 0};
-	rcRight[1] = {80, 48, 160, 112};
-	rcRight[2] = {80, 112, 160, 176};
-	rcRight[3] = {80, 176, 160, 240};
-	rcRight[4] = {240, 48, 320, 112};
-	rcRight[5] = {240, 112, 320, 200};
-	rcRight[6] = {200, 24, 240, 48};
-	rcRight[7] = {80, 24, 120, 48};
-	rcRight[8] = {120, 24, 160, 48};
+	RECT rcRight[9] = {
+		{0, 0, 0, 0},
+		{80, 48, 160, 112},
+		{80, 112, 160, 176},
+		{80, 176, 160, 240},
+		{240, 48, 320, 112},
+		{240, 112, 320, 200},
+		{200, 24, 240, 48},
+		{80, 24, 120, 48},
+		{120, 24, 160, 48},
+	};
 
 	switch (gBoss[0].act_no)
 	{
--- a/src/BossIronH.cpp
+++ b/src/BossIronH.cpp
@@ -169,28 +169,29 @@
 			break;
 	}
 
-	RECT rc[9];
-	RECT rcDamage[9];
+	RECT rc[9] = {
+		{0, 0, 64, 24},
+		{64, 0, 128, 24},
+		{128, 0, 192, 24},
+		{64, 0, 128, 24},
+		{0, 0, 64, 24},
+		{192, 0, 256, 24},
+		{256, 0, 320, 24},
+		{192, 0, 256, 24},
+		{256, 48, 320, 72},
+	};
 
-	rc[0] = {0, 0, 64, 24};
-	rc[1] = {64, 0, 128, 24};
-	rc[2] = {128, 0, 192, 24};
-	rc[3] = {64, 0, 128, 24};
-	rc[4] = {0, 0, 64, 24};
-	rc[5] = {192, 0, 256, 24};
-	rc[6] = {256, 0, 320, 24};
-	rc[7] = {192, 0, 256, 24};
-	rc[8] = {256, 48, 320, 72};
-
-	rcDamage[0] = {0, 24, 64, 48};
-	rcDamage[1] = {64, 24, 128, 48};
-	rcDamage[2] = {128, 24, 192, 48};
-	rcDamage[3] = {64, 24, 128, 48};
-	rcDamage[4] = {0, 24, 64, 48};
-	rcDamage[5] = {192, 24, 256, 48};
-	rcDamage[6] = {256, 24, 320, 48};
-	rcDamage[7] = {192, 24, 256, 48};
-	rcDamage[8] = {256, 48, 320, 72};
+	RECT rcDamage[9] = {
+		{0, 24, 64, 48},
+		{64, 24, 128, 48},
+		{128, 24, 192, 48},
+		{64, 24, 128, 48},
+		{0, 24, 64, 48},
+		{192, 24, 256, 48},
+		{256, 24, 320, 48},
+		{192, 24, 256, 48},
+		{256, 48, 320, 72},
+	};
 
 	if (gBoss[0].shock)
 	{
--- a/src/BossOhm.cpp
+++ b/src/BossOhm.cpp
@@ -15,10 +15,8 @@
 
 void ActBoss01_12()
 {
-	RECT rcLeft[1];
-	RECT rcRight[1];
-	rcLeft[0] = {80, 56, 104, 72};
-	rcRight[0] = {104, 56, 128, 72};
+	RECT rcLeft[1] = {80, 56, 104, 72};
+	RECT rcRight[1] = {104, 56, 128, 72};
 
 	for (int i = 1; i <= 2; i++)
 	{
@@ -39,13 +37,15 @@
 
 void ActBoss01_34()
 {
-	RECT rcRight[2];
-	RECT rcLeft[2];
+	RECT rcLeft[2] = {
+		{0, 56, 40, 88},
+		{40, 56, 80, 88},
+	};
 
-	rcLeft[0] = { 0, 56, 40, 88 };
-	rcLeft[1] = { 40, 56, 80, 88 };
-	rcRight[0] = { 0, 88, 40, 120 };
-	rcRight[1] = { 40, 88, 80, 120 };
+	RECT rcRight[2] = {
+		{ 0, 88, 40, 120 },
+		{ 40, 88, 80, 120 },
+	};
 
 	for (int i = 3; i <= 4; i++)
 	{
@@ -79,19 +79,24 @@
 
 		gBoss[i].count2 = !((gBoss[i].flag & 8) && gBoss[i].y > gBoss[i].tgt_y);
 
-		if (gBoss[i].direct)
-			gBoss[i].rect = rcRight[gBoss[i].count2];
-		else
+		if (gBoss[i].direct == 0)
 			gBoss[i].rect = rcLeft[gBoss[i].count2];
+		else
+			gBoss[i].rect = rcRight[gBoss[i].count2];
 	}
 }
 
 void ActBoss01_5()
 {
-	if (!gBoss[5].act_no)
+	if (gBoss[5].act_no == 0)
 	{
 		gBoss[5].bits |= npc_solidSoft | npc_ignoreSolid;
-		gBoss[5].hit = { 0x2800, 0x4800, 0x2800, 0x2000 };
+
+		gBoss[5].hit.front = 0x2800;
+		gBoss[5].hit.top = 0x4800;
+		gBoss[5].hit.back = 0x2800;
+		gBoss[5].hit.bottom = 0x2000;
+
 		gBoss[5].act_no = 1;
 	}
 	
@@ -110,7 +115,10 @@
 		gBoss[0].x = 0x1B6000;
 		gBoss[0].y = 0x20000;
 
-		gBoss[0].view = { 0x5000, 0x5000, 0x5000, 0x2000 };
+		gBoss[0].view.front = 0x5000;
+		gBoss[0].view.top = 0x5000;
+		gBoss[0].view.back = 0x5000;
+		gBoss[0].view.bottom = 0x2000;
 
 		gBoss[0].tgt_x = 0x1B6000;
 		gBoss[0].tgt_y = 0x20000;
@@ -117,7 +125,10 @@
 
 		gBoss[0].hit_voice = 52;
 
-		gBoss[0].hit = { 0x1000, 0x3000, 0x1000, 0x2000 };
+		gBoss[0].hit.front = 0x1000;
+		gBoss[0].hit.top = 0x3000;
+		gBoss[0].hit.back = 0x1000;
+		gBoss[0].hit.bottom = 0x2000;
 
 		gBoss[0].bits = (npc_ignoreSolid | npc_eventDie | npc_showDamage);
 		gBoss[0].size = 3;
@@ -126,7 +137,12 @@
 		gBoss[0].life = 400;
 
 		gBoss[1].cond = 0x80;
-		gBoss[1].view = { 0x1800, 0x1000, 0x1800, 0x1000 };
+
+		gBoss[1].view.front = 0x1800;
+		gBoss[1].view.top = 0x1000;
+		gBoss[1].view.back = 0x1800;
+		gBoss[1].view.bottom = 0x1000;
+
 		gBoss[1].bits = npc_ignoreSolid;
 
 		memcpy(&gBoss[2], &gBoss[1], sizeof(gBoss[2]));
@@ -135,9 +151,19 @@
 		gBoss[2].direct = 2;
 
 		gBoss[3].cond = 0x80;
-		gBoss[3].view = { 0x3000, 0x2000, 0x2000, 0x2000 };
+
+		gBoss[3].view.front = 0x3000;
+		gBoss[3].view.top = 0x2000;
+		gBoss[3].view.back = 0x2000;
+		gBoss[3].view.bottom = 0x2000;
+
 		gBoss[3].hit_voice = 52;
-		gBoss[3].hit = { 0x1000, 0x1000, 0x1000, 0x1000 };
+
+		gBoss[3].hit.front = 0x1000;
+		gBoss[3].hit.top = 0x1000;
+		gBoss[3].hit.back = 0x1000;
+		gBoss[3].hit.bottom = 0x1000;
+
 		gBoss[3].bits = npc_ignoreSolid;
 
 		gBoss[3].y = gBoss[0].y;
@@ -205,8 +231,8 @@
 			gBoss[0].act_no = 60;
 			gBoss[0].act_wait = 0;
 			gBoss[0].bits |= npc_shootable;
-			gBoss[0].hit.left = 0x2000;
-			gBoss[0].hit.right = 0x2000;
+			gBoss[0].hit.front = 0x2000;
+			gBoss[0].hit.back = 0x2000;
 		}
 		break;
 
@@ -249,8 +275,8 @@
 
 			gBoss[0].bits &= ~npc_shootable;
 
-			gBoss[0].hit.left = 0x3000;
-			gBoss[0].hit.right = 0x3000;
+			gBoss[0].hit.front = 0x3000;
+			gBoss[0].hit.back = 0x3000;
 			gBoss[5].hit.top = 0x4800;
 
 			gBoss[0].damage = 0;
@@ -301,8 +327,8 @@
 		{
 			gBoss[0].act_no = 120;
 			gBoss[0].act_wait = 0;
-			gBoss[0].hit.left = 0x2000;
-			gBoss[0].hit.right = 0x2000;
+			gBoss[0].hit.front = 0x2000;
+			gBoss[0].hit.back = 0x2000;
 		}
 		break;
 
@@ -337,8 +363,8 @@
 			gBoss[0].act_no = 140;
 			gBoss[0].bits |= npc_shootable;
 
-			gBoss[0].hit.left = 0x2000;
-			gBoss[0].hit.right = 0x2000;
+			gBoss[0].hit.front = 0x2000;
+			gBoss[0].hit.back = 0x2000;
 
 			gBoss[0].ym = -0x5FF;
 
@@ -420,24 +446,12 @@
 		break;
 	}
 
-	RECT rect[4];
-
-	rect[0].left = 0;
-	rect[0].top = 0;
-	rect[0].right = 80;
-	rect[0].bottom = 56;
-	rect[1].left = 80;
-	rect[1].top = 0;
-	rect[1].right = 160;
-	rect[1].bottom = 56;
-	rect[2].left = 160;
-	rect[2].top = 0;
-	rect[2].right = 240;
-	rect[2].bottom = 56;
-	rect[3].left = 80;
-	rect[3].top = 0;
-	rect[3].right = 160;
-	rect[3].bottom = 56;
+	RECT rect[4] = {
+		{0, 0, 80, 56},
+		{80, 0, 160, 56},
+		{160, 0, 240, 56},
+		{80, 0, 160, 56},
+	};
 
 	gBoss[0].rect = rect[gBoss[0].count2];
 
--- a/src/BossPress.cpp
+++ b/src/BossPress.cpp
@@ -196,22 +196,23 @@
 	gBoss[3].x = gBoss[0].x;
 	gBoss[3].y = gBoss[0].y + 0x5000;
 
-	RECT rc[3];
-	RECT rcDamage[3];
+	RECT rc[3] = {
+		{0, 0, 80, 120},
+		{80, 0, 160, 120},
+		{160, 0, 240, 120},
+	};
 
-	rc[0] = {0, 0, 80, 120};
-	rc[1] = {80, 0, 160, 120};
-	rc[2] = {160, 0, 240, 120};
+	RECT rcDamage[3] = {
+		{0, 120, 80, 240},
+		{80, 120, 160, 240},
+		{160, 120, 240, 240},
+	};
 
-	rcDamage[0] = {0, 120, 80, 240};
-	rcDamage[1] = {80, 120, 160, 240};
-	rcDamage[2] = {160, 120, 240, 240};
-
 	if (gBoss[0].shock)
 	{
 		static unsigned char flash;
 
-		if ((++flash >> 1) & 1)
+		if ((++flash / 2) % 2)
 			gBoss[0].rect = rc[gBoss[0].ani_no];
 		else
 			gBoss[0].rect = rcDamage[gBoss[0].ani_no];
--- a/src/BossTwinD.cpp
+++ b/src/BossTwinD.cpp
@@ -12,17 +12,18 @@
 
 static void ActBossCharT_DragonBody(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{0, 0, 40, 40},
+		{40, 0, 80, 40},
+		{80, 0, 120, 40},
+	};
 
-	rcLeft[0] = {0, 0, 40, 40};
-	rcLeft[1] = {40, 0, 80, 40};
-	rcLeft[2] = {80, 0, 120, 40};
+	RECT rcRight[3] = {
+		{0, 40, 40, 80},
+		{40, 40, 80, 80},
+		{80, 40, 120, 80},
+	};
 
-	rcRight[0] = {0, 40, 40, 80};
-	rcRight[1] = {40, 40, 80, 80};
-	rcRight[2] = {80, 40, 120, 80};
-
 	unsigned char deg;
 	switch (npc->act_no)
 	{
@@ -90,18 +91,19 @@
 
 static void ActBossCharT_DragonHead(NPCHAR *npc)
 {
-	RECT rcLeft[4];
-	RECT rcRight[4];
+	RECT rcLeft[4] = {
+		{0, 80, 40, 112},
+		{40, 80, 80, 112},
+		{80, 80, 120, 112},
+		{120, 80, 160, 112},
+	};
 
-	rcLeft[0] = {0, 80, 40, 112};
-	rcLeft[1] = {40, 80, 80, 112};
-	rcLeft[2] = {80, 80, 120, 112};
-	rcLeft[3] = {120, 80, 160, 112};
-
-	rcRight[0] = {0, 112, 40, 144};
-	rcRight[1] = {40, 112, 80, 144};
-	rcRight[2] = {80, 112, 120, 144};
-	rcRight[3] = {120, 112, 160, 144};
+	RECT rcRight[4] = {
+		{0, 112, 40, 144},
+		{40, 112, 80, 144},
+		{80, 112, 120, 144},
+		{120, 112, 160, 144},
+	};
 
 	switch (npc->act_no)
 	{
--- a/src/BossX.cpp
+++ b/src/BossX.cpp
@@ -13,23 +13,24 @@
 
 static void ActBossChar03_01(NPCHAR *npc)
 {
-	RECT rcUp[6];
-	RECT rcDown[6];
+	RECT rcUp[6] = {
+		{0, 0, 72, 32},
+		{0, 32, 72, 64},
+		{72, 0, 144, 32},
+		{144, 0, 216, 32},
+		{72, 32, 144, 64},
+		{144, 32, 216, 64},
+	};
 
-	rcUp[0] = {0, 0, 72, 32};
-	rcUp[1] = {0, 32, 72, 64};
-	rcUp[2] = {72, 0, 144, 32};
-	rcUp[3] = {144, 0, 216, 32};
-	rcUp[4] = {72, 32, 144, 64};
-	rcUp[5] = {144, 32, 216, 64};
+	RECT rcDown[6] = {
+		{0, 64, 72, 96},
+		{0, 96, 72, 128},
+		{72, 64, 144, 96},
+		{144, 64, 216, 96},
+		{72, 96, 144, 128},
+		{144, 96, 216, 128},
+	};
 
-	rcDown[0] = {0, 64, 72, 96};
-	rcDown[1] = {0, 96, 72, 128};
-	rcDown[2] = {72, 64, 144, 96};
-	rcDown[3] = {144, 64, 216, 96};
-	rcDown[4] = {72, 96, 144, 128};
-	rcDown[5] = {144, 96, 216, 128};
-
 	switch (npc->act_no)
 	{
 		case 10:
@@ -211,13 +212,13 @@
 
 static void ActBossChar03_02(NPCHAR *npc)
 {
-	RECT rect[4];
+	RECT rect[4] = {
+		{0, 128, 72, 160},
+		{72, 128, 144, 160},
+		{0, 160, 72, 192},
+		{72, 160, 144, 192},
+	};
 
-	rect[0] = {0, 128, 72, 160};
-	rect[1] = {72, 128, 144, 160};
-	rect[2] = {0, 160, 72, 192};
-	rect[3] = {72, 160, 144, 192};
-
 	switch (npc->act_no)
 	{
 		case 10:
@@ -360,17 +361,17 @@
 
 static void ActBossChar03_04(NPCHAR *npc)
 {
-	RECT rect[8];
+	RECT rect[8] = {
+		{0, 192, 16, 208},
+		{16, 192, 32, 208},
+		{32, 192, 48, 208},
+		{48, 192, 64, 208},
+		{0, 208, 16, 224},
+		{16, 208, 32, 224},
+		{32, 208, 48, 224},
+		{48, 208, 64, 224},
+	};
 
-	rect[0] = {0, 192, 16, 208};
-	rect[1] = {16, 192, 32, 208};
-	rect[2] = {32, 192, 48, 208};
-	rect[3] = {48, 192, 64, 208};
-	rect[4] = {0, 208, 16, 224};
-	rect[5] = {16, 208, 32, 224};
-	rect[6] = {32, 208, 48, 224};
-	rect[7] = {48, 208, 64, 224};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -428,11 +429,11 @@
 
 static void ActBossChar03_face(NPCHAR *npc)
 {
-	RECT rect[3];
-
-	rect[0] = {216, 0, 320, 48};
-	rect[1] = {216, 48, 320, 96};
-	rect[2] = {216, 144, 320, 192};
+	RECT rect[3] = {
+		{216, 0, 320, 48},
+		{216, 48, 320, 96},
+		{216, 144, 320, 192},
+	};
 
 	switch (npc->act_no)
 	{
--- a/src/Bullet.cpp
+++ b/src/Bullet.cpp
@@ -217,19 +217,20 @@
 		if (bul->ani_no > 3)
 			bul->ani_no = 0;
 
-		RECT rcLeft[4];
-		RECT rcRight[4];
+		RECT rcLeft[4] = {
+			{136, 80, 152, 80},
+			{120, 80, 136, 96},
+			{136, 64, 152, 80},
+			{120, 64, 136, 80},
+		};
 
-		rcLeft[0] = {136, 80, 152, 80};
-		rcLeft[1] = {120, 80, 136, 96};
-		rcLeft[2] = {136, 64, 152, 80};
-		rcLeft[3] = {120, 64, 136, 80};
+		RECT rcRight[4] = {
+			{120, 64, 136, 80},
+			{136, 64, 152, 80},
+			{120, 80, 136, 96},
+			{136, 80, 152, 80},
+		};
 
-		rcRight[0] = {120, 64, 136, 80};
-		rcRight[1] = {136, 64, 152, 80};
-		rcRight[2] = {120, 80, 136, 96};
-		rcRight[3] = {136, 80, 152, 80};
-
 		if (bul->direct == 0)
 			bul->rect = rcLeft[bul->ani_no];
 		else
@@ -349,12 +350,12 @@
 		if ( bul->ani_no > 2 )
 			bul->ani_no = 0;
 
-		RECT rect[3];
+		RECT rect[3] = {
+			{192, 16, 208, 32},
+			{208, 16, 224, 32},
+			{224, 16, 240, 32},
+		};
 
-		rect[0] = {192, 16, 208, 32};
-		rect[1] = {208, 16, 224, 32};
-		rect[2] = {224, 16, 240, 32};
-
 		bul->rect = rect[bul->ani_no];
 
 		if (level == 2)
@@ -438,21 +439,52 @@
 			{
 				case 1:
 					if (bul->direct != 1 && bul->direct != 3)
-						bul->rect = {128, 32, 144, 48};
+					{
+						bul->rect.left = 128;
+						bul->rect.top = 32;
+						bul->rect.right = 144;
+						bul->rect.bottom = 48;
+					}
 					else
-						bul->rect = {144, 32, 160, 48};
+					{
+						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)
-						bul->rect = {160, 32, 176, 48};
+					{
+						bul->rect.left = 160;
+						bul->rect.top = 32;
+						bul->rect.right = 176;
+						bul->rect.bottom = 48;
+					}
 					else
-						bul->rect = {176, 32, 192, 48};
+					{
+						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 = {128, 48, 144, 64};
+					{
+						bul->rect.left = 128;
+						bul->rect.top = 48;
+						bul->rect.right = 144;
+						bul->rect.bottom = 64;
+					}
 					else
-						bul->rect = {144, 48, 160, 64};
+					{
+						bul->rect.left = 144;
+						bul->rect.top = 48;
+						bul->rect.right = 160;
+						bul->rect.bottom = 64;
+					}
 					break;
 			}
 		}
@@ -544,24 +576,31 @@
 				}
 			}
 
-			RECT rect_left1[4];
-			RECT rect_right1[4];
-			RECT rect_left2[3];
-			RECT rect_right2[3];
-			rect_left1[0] = {128, 0, 144, 16};
-			rect_left1[1] = {144, 0, 160, 16};
-			rect_left1[2] = {160, 0, 176, 16};
-			rect_left1[3] = {176, 0, 192, 16};
-			rect_right1[0] = {128, 16, 144, 32};
-			rect_right1[1] = {144, 16, 160, 32};
-			rect_right1[2] = {160, 16, 176, 32};
-			rect_right1[3] = {176, 16, 192, 32};
-			rect_left2[0] = {192, 16, 208, 32};
-			rect_left2[1] = {208, 16, 224, 32};
-			rect_left2[2] = {224, 16, 240, 32};
-			rect_right2[0] = {224, 16, 240, 32};
-			rect_right2[1] = {208, 16, 224, 32};
-			rect_right2[2] = {192, 16, 208, 32};
+			RECT rect_left1[4] = {
+				{128, 0, 144, 16},
+				{144, 0, 160, 16},
+				{160, 0, 176, 16},
+				{176, 0, 192, 16},
+			};
+
+			RECT rect_right1[4] = {
+				{128, 16, 144, 32},
+				{144, 16, 160, 32},
+				{160, 16, 176, 32},
+				{176, 16, 192, 32},
+			};
+
+			RECT rect_left2[3] = {
+				{192, 16, 208, 32},
+				{208, 16, 224, 32},
+				{224, 16, 240, 32},
+			};
+
+			RECT rect_right2[3] = {
+				{224, 16, 240, 32},
+				{208, 16, 224, 32},
+				{192, 16, 208, 32},
+			};
 			
 			bul->ani_no++;
 			
@@ -601,25 +640,34 @@
 
 void ActBullet_MachineGun(BULLET *bul, int level)
 {
-	RECT rect1[4];
-	RECT rect2[4];
-	RECT rect3[4];
-	
-	rect1[0] = {64, 0, 80, 16};
-	rect1[1] = {80, 0, 96, 16};
-	rect1[2] = {96, 0, 112, 16};
-	rect1[3] = {112, 0, 128, 16};
-	rect2[0] = {64, 16, 80, 32};
-	rect2[1] = {80, 16, 96, 32};
-	rect2[2] = {96, 16, 112, 32};
-	rect2[3] = {112, 16, 128, 32};
-	rect3[0] = {64, 32, 80, 48};
-	rect3[1] = {80, 32, 96, 48};
-	rect3[2] = {96, 32, 112, 48};
-	rect3[3] = {112, 32, 128, 48};
-	
-	if (++bul->count1 <= bul->life_count)
+	RECT rect1[4] = {
+		{64, 0, 80, 16},
+		{80, 0, 96, 16},
+		{96, 0, 112, 16},
+		{112, 0, 128, 16},
+	};
+
+	RECT rect2[4] = {
+		{64, 16, 80, 32},
+		{80, 16, 96, 32},
+		{96, 16, 112, 32},
+		{112, 16, 128, 32},
+	};
+
+	RECT rect3[4] = {
+		{64, 32, 80, 48},
+		{80, 32, 96, 48},
+		{96, 32, 112, 48},
+		{112, 32, 128, 48},
+	};
+
+	if (++bul->count1 > bul->life_count)
 	{
+		bul->cond = 0;
+		SetCaret(bul->x, bul->y, 3, 0);
+	}
+	else
+	{
 		if (bul->act_no)
 		{
 			bul->x += bul->xm;
@@ -682,11 +730,6 @@
 			}
 		}
 	}
-	else
-	{
-		bul->cond = 0;
-		SetCaret(bul->x, bul->y, 3, 0);
-	}
 }
 
 void ActBullet_Missile(BULLET *bul, int level)
@@ -864,25 +907,27 @@
 		}
 	}
 
-	RECT rect1[4];
-	RECT rect2[4];
-	RECT rect3[4];
+	RECT rect1[4] = {
+		{0, 0, 16, 16},
+		{16, 0, 32, 16},
+		{32, 0, 48, 16},
+		{48, 0, 64, 16},
+	};
 
-	rect1[0] = {0, 0, 16, 16};
-	rect1[1] = {16, 0, 32, 16};
-	rect1[2] = {32, 0, 48, 16};
-	rect1[3] = {48, 0, 64, 16};
+	RECT rect2[4] = {
+		{0, 16, 16, 32},
+		{16, 16, 32, 32},
+		{32, 16, 48, 32},
+		{48, 16, 64, 32},
+	};
 
-	rect2[0] = {0, 16, 16, 32};
-	rect2[1] = {16, 16, 32, 32};
-	rect2[2] = {32, 16, 48, 32};
-	rect2[3] = {48, 16, 64, 32};
+	RECT rect3[4] = {
+		{0, 32, 16, 48},
+		{16, 32, 32, 48},
+		{32, 32, 48, 48},
+		{48, 32, 64, 48},
+	};
 
-	rect3[0] = {0, 32, 16, 48};
-	rect3[1] = {16, 32, 32, 48};
-	rect3[2] = {32, 32, 48, 48};
-	rect3[3] = {48, 32, 64, 48};
-
 	switch (level)
 	{
 		case 1:
@@ -1016,13 +1061,13 @@
 			SetCaret(bul->x, bul->y, 15, 0);
 		}
 
-		RECT rect[4];
+		RECT rect[4] = {
+			{192, 0, 200, 8},
+			{200, 0, 208, 8},
+			{208, 0, 216, 8},
+			{216, 0, 224, 8},
+		};
 
-		rect[0] = {192, 0, 200, 8};
-		rect[1] = {200, 0, 208, 8};
-		rect[2] = {208, 0, 216, 8};
-		rect[3] = {216, 0, 224, 8};
-
 		if (++bul->ani_wait > 3)
 		{
 			bul->ani_wait = 0;
@@ -1106,13 +1151,13 @@
 			SetCaret(bul->x, bul->y, 15, 0);
 		}
 
-		RECT rect[4];
+		RECT rect[4] = {
+			{192, 8, 200, 16},
+			{200, 8, 208, 16},
+			{208, 8, 216, 16},
+			{216, 8, 224, 16},
+		};
 
-		rect[0] = {192, 8, 200, 16};
-		rect[1] = {200, 8, 208, 16};
-		rect[2] = {208, 8, 216, 16};
-		rect[3] = {216, 8, 224, 16};
-
 		if (++bul->ani_wait > 3)
 		{
 			bul->ani_wait = 0;
@@ -1178,13 +1223,13 @@
 		bul->x += bul->xm;
 		bul->y += bul->ym;
 
-		RECT rect[4];
+		RECT rect[4] = {
+			{240, 16, 248, 24},
+			{248, 16, 256, 24},
+			{240, 24, 248, 32},
+			{248, 24, 256, 32},
+		};
 
-		rect[0] = {240, 16, 248, 24};
-		rect[1] = {248, 16, 256, 24};
-		rect[2] = {240, 24, 248, 32};
-		rect[3] = {248, 24, 256, 32};
-
 		if (++bul->ani_wait > 3)
 		{
 			bul->ani_wait = 0;
@@ -1255,19 +1300,21 @@
 		if (bul->ani_no > 1)
 			bul->ani_no = 0;
 
-		RECT rcLeft[2];
-		RECT rcRight[2];
-		RECT rcDown[2];
+		RECT rcLeft[2] = {
+			{224, 0, 232, 8},
+			{232, 0, 240, 8},
+		};
 
-		rcLeft[0] = {224, 0, 232, 8};
-		rcLeft[1] = {232, 0, 240, 8};
+		RECT rcRight[2] = {
+			{224, 0, 232, 8},
+			{232, 0, 240, 8},
+		};
 
-		rcRight[0] = {224, 0, 232, 8};
-		rcRight[1] = {232, 0, 240, 8};
+		RECT rcDown[2] = {
+			{224, 8, 232, 16},
+			{232, 8, 240, 16},
+		};
 
-		rcDown[0] = {224, 8, 232, 16};
-		rcDown[1] = {232, 8, 240, 16};
-
 		switch (bul->direct)
 		{
 			case 0:
@@ -1327,19 +1374,20 @@
 			}
 		}
 
-		RECT rcLeft[4];
-		RECT rcRight[4];
+		RECT rcLeft[4] = {
+			{0, 48, 16, 64},
+			{16, 48, 32, 64},
+			{32, 48, 48, 64},
+			{48, 48, 64, 64},
+		};
 
-		rcLeft[0] = {0, 48, 16, 64};
-		rcLeft[1] = {16, 48, 32, 64};
-		rcLeft[2] = {32, 48, 48, 64};
-		rcLeft[3] = {48, 48, 64, 64};
+		RECT rcRight[4] = {
+			{64, 48, 80, 64},
+			{80, 48, 96, 64},
+			{96, 48, 112, 64},
+			{112, 48, 128, 64},
+		};
 
-		rcRight[0] = {64, 48, 80, 64};
-		rcRight[1] = {80, 48, 96, 64};
-		rcRight[2] = {96, 48, 112, 64};
-		rcRight[3] = {112, 48, 128, 64};
-
 		if (++bul->ani_wait > 1)
 		{
 			bul->ani_wait = 0;
@@ -1397,19 +1445,20 @@
 			}
 		}
 
-		RECT rcLeft[4];
-		RECT rcRight[4];
+		RECT rcLeft[4] = {
+			{160, 48, 184, 72},
+			{184, 48, 208, 72},
+			{208, 48, 232, 72},
+			{232, 48, 256, 72},
+		};
 
-		rcLeft[0] = {160, 48, 184, 72};
-		rcLeft[1] = {184, 48, 208, 72};
-		rcLeft[2] = {208, 48, 232, 72};
-		rcLeft[3] = {232, 48, 256, 72};
+		RECT rcRight[4] = {
+			{160, 72, 184, 96},
+			{184, 72, 208, 96},
+			{208, 72, 232, 96},
+			{232, 72, 256, 96},
+		};
 
-		rcRight[0] = {160, 72, 184, 96};
-		rcRight[1] = {184, 72, 208, 96};
-		rcRight[2] = {208, 72, 232, 96};
-		rcRight[3] = {232, 72, 256, 96};
-
 		if (++bul->ani_wait > 1)
 		{
 			bul->ani_wait = 0;
@@ -1428,23 +1477,26 @@
 
 void ActBullet_Sword3(BULLET *bul)
 {
-	RECT rcLeft[2];
-	RECT rcUp[2];
-	RECT rcDown[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{272, 0, 296, 24},
+		{296, 0, 320, 24},
+	};
 
-	rcLeft[0] = {272, 0, 296, 24};
-	rcLeft[1] = {296, 0, 320, 24};
+	RECT rcUp[2] = {
+		{272, 48, 296, 72},
+		{296, 0, 320, 24},
+	};
 
-	rcUp[0] = {272, 48, 296, 72};
-	rcUp[1] = {296, 0, 320, 24};
+	RECT rcRight[2] = {
+		{272, 24, 296, 48},
+		{296, 24, 320, 48},
+	};
 
-	rcRight[0] = {272, 24, 296, 48};
-	rcRight[1] = {296, 24, 320, 48};
+	RECT rcDown[2] = {
+		{296, 48, 320, 72},
+		{296, 24, 320, 48},
+	};
 
-	rcDown[0] = {296, 48, 320, 72};
-	rcDown[1] = {296, 24, 320, 48};
-
 	switch (bul->act_no)
 	{
 		case 0:
@@ -1543,9 +1595,6 @@
 
 void ActBullet_Edge(BULLET *bul)
 {
-	RECT rcLeft[5];
-	RECT rcRight[5];
-
 	switch (bul->act_no)
 	{
 		case 0:
@@ -1582,17 +1631,21 @@
 			break;
 	}
 
-	rcLeft[0] = {0, 64, 24, 88};
-	rcLeft[1] = {24, 64, 48, 88};
-	rcLeft[2] = {48, 64, 72, 88};
-	rcLeft[3] = {72, 64, 96, 88};
-	rcLeft[4] = {96, 64, 120, 88};
+	RECT rcLeft[5] = {
+		{0, 64, 24, 88},
+		{24, 64, 48, 88},
+		{48, 64, 72, 88},
+		{72, 64, 96, 88},
+		{96, 64, 120, 88},
+	};
 
-	rcRight[0] = {0, 88, 24, 112};
-	rcRight[1] = {24, 88, 48, 112};
-	rcRight[2] = {48, 88, 72, 112};
-	rcRight[3] = {72, 88, 96, 112};
-	rcRight[4] = {96, 88, 120, 112};
+	RECT rcRight[5] = {
+		{0, 88, 24, 112},
+		{24, 88, 48, 112},
+		{48, 88, 72, 112},
+		{72, 88, 96, 112},
+		{96, 88, 120, 112},
+	};
 
 	if (bul->direct == 0)
 		bul->rect = rcLeft[bul->ani_no];
@@ -1602,10 +1655,8 @@
 
 void ActBullet_Drop(BULLET *bul)
 {
-	RECT rc[1];
+	RECT rc[1] = {0, 0, 0, 0};
 
-	rc[0] = {0, 0, 0, 0};
-
 	if (++bul->act_wait > 2)
 		bul->cond = 0;
 
@@ -1792,19 +1843,20 @@
 		}
 	}
 
-	RECT rect1[4];
-	RECT rect2[4];
+	RECT rect1[4] = {
+		{120, 96, 136, 112},
+		{136, 96, 152, 112},
+		{152, 96, 168, 112},
+		{168, 96, 184, 112},
+	};
 
-	rect1[0] = {120, 96, 136, 112};
-	rect1[1] = {136, 96, 152, 112};
-	rect1[2] = {152, 96, 168, 112};
-	rect1[3] = {168, 96, 184, 112};
+	RECT rect2[4] = {
+		{184, 96, 200, 112},
+		{200, 96, 216, 112},
+		{216, 96, 232, 112},
+		{232, 96, 248, 112},
+	};
 
-	rect2[0] = {184, 96, 200, 112};
-	rect2[1] = {200, 96, 216, 112};
-	rect2[2] = {216, 96, 232, 112};
-	rect2[3] = {232, 96, 248, 112};
-
 	switch (level)
 	{
 		case 1:
@@ -1929,23 +1981,26 @@
 		if (++bul->ani_no > 1)
 			bul->ani_no = 0;
 
-		RECT rcL[2];
-		RECT rcU[2];
-		RECT rcR[2];
-		RECT rcD[2];
+		RECT rcL[2] = {
+			{0, 112, 32, 128},
+			{0, 128, 32, 144},
+		};
 
-		rcL[0] = {0, 112, 32, 128};
-		rcL[1] = {0, 128, 32, 144};
+		RECT rcU[2] = {
+			{32, 112, 48, 144},
+			{48, 112, 64, 144},
+		};
 
-		rcU[0] = {32, 112, 48, 144};
-		rcU[1] = {48, 112, 64, 144};
+		RECT rcR[2] = {
+			{64, 112, 96, 128},
+			{64, 128, 96, 144},
+		};
 
-		rcR[0] = {64, 112, 96, 128};
-		rcR[1] = {64, 128, 96, 144};
+		RECT rcD[2] = {
+			{96, 112, 112, 144},
+			{112, 112, 128, 144},
+		};
 
-		rcD[0] = {96, 112, 112, 144};
-		rcD[1] = {112, 112, 128, 144};
-
 		switch (bul->direct)
 		{
 			case 0:
@@ -2044,19 +2099,21 @@
 			}
 		}
 
-		RECT rect1[2];
-		RECT rect2[2];
-		RECT rect3[2];
+		RECT rect1[2] = {
+			{128, 32, 144, 48},
+			{144, 32, 160, 48},
+		};
 
-		rect1[0] = {128, 32, 144, 48};
-		rect1[1] = {144, 32, 160, 48};
+		RECT rect2[2] = {
+			{160, 32, 176, 48},
+			{176, 32, 192, 48},
+		};
 
-		rect2[0] = {160, 32, 176, 48};
-		rect2[1] = {176, 32, 192, 48};
+		RECT rect3[2] = {
+			{128, 48, 144, 64},
+			{144, 48, 160, 64},
+		};
 
-		rect3[0] = {128, 48, 144, 64};
-		rect3[1] = {144, 48, 160, 64};
-
 		bul->damage = bul->life;
 
 		switch (level)
@@ -2099,36 +2156,41 @@
 	if ( bul->damage && bul->life != 100 )
 		bul->damage = 0;
 
-	RECT rc_h_lv1[3];
-	RECT rc_v_lv1[3];
-	RECT rc_h_lv2[3];
-	RECT rc_v_lv2[3];
-	RECT rc_h_lv3[3];
-	RECT rc_v_lv3[3];
+	RECT rc_h_lv1[3] = {
+		{192, 32, 200, 40},
+		{200, 32, 208, 40},
+		{208, 32, 216, 40},
+	};
 
-	rc_h_lv1[0] = {192, 32, 200, 40};
-	rc_h_lv1[1] = {200, 32, 208, 40};
-	rc_h_lv1[2] = {208, 32, 216, 40};
+	RECT rc_v_lv1[3] = {
+		{192, 40, 200, 48},
+		{200, 40, 208, 48},
+		{208, 40, 216, 48},
+	};
 
-	rc_v_lv1[0] = {192, 40, 200, 48};
-	rc_v_lv1[1] = {200, 40, 208, 48};
-	rc_v_lv1[2] = {208, 40, 216, 48};
+	RECT rc_h_lv2[3] = {
+		{216, 32, 224, 40},
+		{224, 32, 232, 40},
+		{232, 32, 240, 40},
+	};
 
-	rc_h_lv2[0] = {216, 32, 224, 40};
-	rc_h_lv2[1] = {224, 32, 232, 40};
-	rc_h_lv2[2] = {232, 32, 240, 40};
+	RECT rc_v_lv2[3] = {
+		{216, 40, 224, 48},
+		{224, 40, 232, 48},
+		{232, 40, 240, 48},
+	};
 
-	rc_v_lv2[0] = {216, 40, 224, 48};
-	rc_v_lv2[1] = {224, 40, 232, 48};
-	rc_v_lv2[2] = {232, 40, 240, 48};
+	RECT rc_h_lv3[3] = {
+		{240, 32, 248, 40},
+		{248, 32, 256, 40},
+		{256, 32, 264, 40},
+	};
 
-	rc_h_lv3[0] = {240, 32, 248, 40};
-	rc_h_lv3[1] = {248, 32, 256, 40};
-	rc_h_lv3[2] = {256, 32, 264, 40};
-
-	rc_v_lv3[0] = {240, 32, 248, 40};
-	rc_v_lv3[1] = {248, 32, 256, 40};
-	rc_v_lv3[2] = {256, 32, 264, 40};
+	RECT rc_v_lv3[3] = {
+		{240, 32, 248, 40},
+		{248, 32, 256, 40},
+		{256, 32, 264, 40},
+	};
 
 	switch (level)
 	{
--- a/src/Caret.cpp
+++ b/src/Caret.cpp
@@ -23,19 +23,20 @@
 
 void ActCaret01(CARET *crt)
 {
-	RECT rcLeft[4];
-	RECT rcRight[4];
+	RECT rcLeft[4] = {
+		{0, 64, 8, 72},
+		{8, 64, 16, 72},
+		{16, 64, 24, 72},
+		{24, 64, 32, 72},
+	};
+
+	RECT rcRight[4] = {
+		{64, 24, 72, 32},
+		{72, 24, 80, 32},
+		{80, 24, 88, 32},
+		{88, 24, 92, 32},
+	};
 	
-	rcLeft[0] = {0, 64, 8, 72};
-	rcLeft[1] = {8, 64, 16, 72};
-	rcLeft[2] = {16, 64, 24, 72};
-	rcLeft[3] = {24, 64, 32, 72};
-	
-	rcRight[0] = {64, 24, 72, 32};
-	rcRight[1] = {72, 24, 80, 32};
-	rcRight[2] = {80, 24, 88, 32};
-	rcRight[3] = {88, 24, 92, 32};
-	
 	if (!crt->act_no)
 	{
 		crt->act_no = 1;
@@ -62,54 +63,26 @@
 
 void ActCaret02(CARET *crt)
 {
-	RECT rect_right[4];
-	RECT rect_left[4];
-	RECT rect_up[3];
-	rect_left[0].left = 0;
-	rect_left[0].top = 32;
-	rect_left[0].right = 16;
-	rect_left[0].bottom = 48;
-	rect_left[1].left = 16;
-	rect_left[1].top = 32;
-	rect_left[1].right = 32;
-	rect_left[1].bottom = 48;
-	rect_left[2].left = 32;
-	rect_left[2].top = 32;
-	rect_left[2].right = 48;
-	rect_left[2].bottom = 48;
-	rect_left[3].left = 48;
-	rect_left[3].top = 32;
-	rect_left[3].right = 64;
-	rect_left[3].bottom = 48;
-	rect_right[0].left = 176;
-	rect_right[0].top = 0;
-	rect_right[0].right = 192;
-	rect_right[0].bottom = 16;
-	rect_right[1].left = 192;
-	rect_right[1].top = 0;
-	rect_right[1].right = 208;
-	rect_right[1].bottom = 16;
-	rect_right[2].left = 208;
-	rect_right[2].top = 0;
-	rect_right[2].right = 224;
-	rect_right[2].bottom = 16;
-	rect_right[3].left = 224;
-	rect_right[3].top = 0;
-	rect_right[3].right = 240;
-	rect_right[3].bottom = 16;
-	rect_up[0].left = 0;
-	rect_up[0].top = 32;
-	rect_up[0].right = 16;
-	rect_up[0].bottom = 48;
-	rect_up[1].left = 32;
-	rect_up[1].top = 32;
-	rect_up[1].right = 48;
-	rect_up[1].bottom = 48;
-	rect_up[2].left = 16;
-	rect_up[2].top = 32;
-	rect_up[2].right = 32;
-	rect_up[2].bottom = 48;
+	RECT rect_left[4] = {
+		{0, 32, 16, 48},
+		{16, 32, 32, 48},
+		{32, 32, 48, 48},
+		{48, 32, 64, 48},
+	};
 
+	RECT rect_right[4] = {
+		{176, 0, 192, 16},
+		{192, 0, 208, 16},
+		{208, 0, 224, 16},
+		{224, 0, 240, 16},
+	};
+
+	RECT rect_up[3] = {
+		{0, 32, 16, 48},
+		{32, 32, 48, 48},
+		{16, 32, 32, 48},
+	};
+
 	switch (crt->direct)
 	{
 		case 0:
@@ -146,11 +119,12 @@
 
 void ActCaret03(CARET *crt)
 {
-	RECT rect[4];
-	rect[0] = {0, 48, 16, 64};
-	rect[1] = {16, 48, 32, 64};
-	rect[2] = {32, 48, 48, 64};
-	rect[3] = {48, 48, 64, 64};
+	RECT rect[4] = {
+		{0, 48, 16, 64},
+		{16, 48, 32, 64},
+		{32, 48, 48, 64},
+		{48, 48, 64, 64},
+	};
 	
 	if (++crt->ani_wait > 2)
 	{
@@ -164,18 +138,18 @@
 
 void ActCaret04(CARET *crt)
 {
-	RECT rect[9];
+	RECT rect[9] = {
+		{64, 32, 80, 48},
+		{80, 32, 96, 48},
+		{96, 32, 112, 48},
+		{64, 48, 80, 64},
+		{80, 48, 96, 64},
+		{96, 48, 112, 64},
+		{64, 64, 80, 80},
+		{80, 64, 96, 80},
+		{96, 64, 112, 80},
+	};
 
-	rect[0] = {64, 32, 80, 48};
-	rect[1] = {80, 32, 96, 48};
-	rect[2] = {96, 32, 112, 48};
-	rect[3] = {64, 48, 80, 64};
-	rect[4] = {80, 48, 96, 64};
-	rect[5] = {96, 48, 112, 64};
-	rect[6] = {64, 64, 80, 80};
-	rect[7] = {80, 64, 96, 80};
-	rect[8] = {96, 64, 112, 80};
-
 	if (++crt->ani_wait > 1)
 	{
 		crt->ani_wait = 0;
@@ -189,16 +163,16 @@
 
 void ActCaret05(CARET *crt)
 {
-	RECT rect[7];
+	RECT rect[7] = {
+		{32, 64, 40, 72},
+		{32, 72, 40, 80},
+		{40, 64, 48, 72},
+		{40, 72, 48, 80},
+		{40, 64, 48, 72},
+		{40, 72, 48, 80},
+		{40, 64, 48, 72},
+	};
 
-	rect[0] = {32, 64, 40, 72};
-	rect[1] = {32, 72, 40, 80};
-	rect[2] = {40, 64, 48, 72};
-	rect[3] = {40, 72, 48, 80};
-	rect[4] = {40, 64, 48, 72};
-	rect[5] = {40, 72, 48, 80};
-	rect[6] = {40, 64, 48, 72};
-
 	if (++crt->ani_wait > 4)
 	{
 		crt->ani_wait = 0;
@@ -216,16 +190,16 @@
 
 void ActCaret07(CARET *crt)
 {
-	RECT rcLeft[7];
+	RECT rcLeft[7] = {
+		{56, 0, 64, 8},
+		{64, 0, 72, 8},
+		{72, 0, 80, 8},
+		{80, 0, 88, 8},
+		{88, 0, 96, 8},
+		{96, 0, 104, 8},
+		{104, 0, 112, 8},
+	};
 
-	rcLeft[0] = {56, 0, 64, 8};
-	rcLeft[1] = {64, 0, 72, 8};
-	rcLeft[2] = {72, 0, 80, 8};
-	rcLeft[3] = {80, 0, 88, 8};
-	rcLeft[4] = {88, 0, 96, 8};
-	rcLeft[5] = {96, 0, 104, 8};
-	rcLeft[6] = {104, 0, 112, 8};
-
 	if (++crt->ani_wait > 1)
 	{
 		crt->ani_wait = 0;
@@ -282,13 +256,16 @@
 
 void ActCaret10(CARET *crt)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
-	rcLeft[0] = {0, 0, 56, 16};
-	rcLeft[1] = {0, 16, 56, 32};
-	rcRight[0] = {0, 96, 56, 112};
-	rcRight[1] = {0, 112, 56, 128};
-	
+	RECT rcLeft[2] = {
+		{0, 0, 56, 16},
+		{0, 16, 56, 32},
+	};
+
+	RECT rcRight[2] = {
+		{0, 96, 56, 112},
+		{0, 112, 56, 128},
+	};
+
 	++crt->ani_wait;
 	
 	if (crt->direct)
@@ -325,14 +302,15 @@
 	crt->x += crt->xm;
 	crt->y += crt->ym;
 	
-	RECT rcRight[7];
-	rcRight[0] = {56, 8, 64, 16};
-	rcRight[1] = {64, 8, 72, 16};
-	rcRight[2] = {72, 8, 80, 16};
-	rcRight[3] = {80, 8, 88, 16};
-	rcRight[4] = {88, 8, 96, 16};
-	rcRight[5] = {96, 8, 104, 16};
-	rcRight[6] = {104, 8, 112, 16};
+	RECT rcRight[7] = {
+		{56, 8, 64, 16},
+		{64, 8, 72, 16},
+		{72, 8, 80, 16},
+		{80, 8, 88, 16},
+		{88, 8, 96, 16},
+		{96, 8, 104, 16},
+		{104, 8, 112, 16},
+	};
 
 	if (++crt->ani_wait > 2)
 	{
@@ -346,9 +324,10 @@
 
 void ActCaret12(CARET *crt)
 {
-	RECT rcLeft[2];
-	rcLeft[0] = {112, 0, 144, 32};
-	rcLeft[1] = {144, 0, 176, 32};
+	RECT rcLeft[2] = {
+		{112, 0, 144, 32},
+		{144, 0, 176, 32},
+	};
 	
 	if (++crt->ani_wait > 2)
 	{
@@ -362,9 +341,10 @@
 
 void ActCaret13(CARET *crt)
 {
-	RECT rcLeft[2];
-	rcLeft[0] = {56, 24, 64, 32};
-	rcLeft[1] = {0, 0, 0, 0};
+	RECT rcLeft[2] = {
+		{56, 24, 64, 32},
+		{0, 0, 0, 0},
+	};
 	
 	if (!crt->act_no)
 	{
@@ -403,14 +383,14 @@
 
 void ActCaret14(CARET *crt)
 {
-	RECT rect[5];
+	RECT rect[5] = {
+		{0, 96, 40, 136},
+		{40, 96, 80, 136},
+		{80, 96, 120, 136},
+		{120, 96, 160, 136},
+		{160, 96, 200, 136},
+	};
 
-	rect[0] = {0, 96, 40, 136};
-	rect[1] = {40, 96, 80, 136};
-	rect[2] = {80, 96, 120, 136};
-	rect[3] = {120, 96, 160, 136};
-	rect[4] = {160, 96, 200, 136};
-
 	if (++crt->ani_wait > 1)
 	{
 		crt->ani_wait = 0;
@@ -424,13 +404,13 @@
 
 void ActCaret15(CARET *crt)
 {
-	RECT rcLeft[4];
+	RECT rcLeft[4] = {
+		{0, 72, 8, 80},
+		{8, 72, 16, 80},
+		{16, 72, 24, 80},
+		{24, 72, 32, 80},
+	};
 
-	rcLeft[0] = {0, 72, 8, 80};
-	rcLeft[1] = {8, 72, 16, 80};
-	rcLeft[2] = {16, 72, 24, 80};
-	rcLeft[3] = {24, 72, 32, 80};
-
 	if (++crt->ani_wait > 2)
 	{
 		crt->ani_wait = 0;
@@ -444,11 +424,11 @@
 
 void ActCaret16(CARET *crt)
 {
-	RECT rcLeft[2];
+	RECT rcLeft[2] = {
+		{104, 96, 144, 104},
+		{104, 104, 144, 112},
+	};
 
-	rcLeft[0] = {104, 96, 144, 104};
-	rcLeft[1] = {104, 104, 144, 112};
-
 	if (++crt->ani_wait < 10)
 		crt->y -= 0x400;
 
@@ -460,10 +440,10 @@
 
 void ActCaret17(CARET *crt)
 {
-	RECT rcLeft[2];
-
-	rcLeft[0] = {0, 144, 144, 152};
-	rcLeft[1] = {0, 0, 0, 0};
+	RECT rcLeft[2] = {
+		{0, 144, 144, 152},
+		{0, 0, 0, 0},
+	};
 
 	if (++crt->ani_wait >= 40)
 		crt->ani_wait = 0;
--- a/src/Draw.cpp
+++ b/src/Draw.cpp
@@ -375,7 +375,7 @@
 	return LoadBitmap_Resource(res, surf_no, false);
 }
 
-SDL_Rect RectToSDLRect(RECT *rect)
+static SDL_Rect RectToSDLRect(RECT *rect)
 {
 	SDL_Rect SDLRect = {rect->left, rect->top, rect->right - rect->left, rect->bottom - rect->top};
 	if (SDLRect.w < 0)
@@ -385,6 +385,16 @@
 	return SDLRect;
 }
 
+static SDL_Rect RectToSDLRectScaled(RECT *rect)
+{
+	SDL_Rect SDLRect = RectToSDLRect(rect);
+	SDLRect.x *= magnification;
+	SDLRect.y *= magnification;
+	SDLRect.w *= magnification;
+	SDLRect.h *= magnification;
+	return SDLRect;
+}
+
 void BackupSurface(Surface_Ids surf_no, RECT *rect)
 {
 	//Get renderer size
@@ -397,8 +407,7 @@
 	SDL_RenderReadPixels(gRenderer, NULL, SDL_PIXELFORMAT_RGBA32, surface->pixels, surface->pitch);
 
 	//Get rects
-	SDL_Rect frameRect = RectToSDLRect(rect);
-	frameRect = {frameRect.x * magnification, frameRect.y * magnification, frameRect.w * magnification, frameRect.h * magnification};
+	SDL_Rect frameRect = RectToSDLRectScaled(rect);
 
 	SDL_BlitSurface(surface, &frameRect, surf[surf_no].surface, &frameRect);
 	surf[surf_no].needs_updating = true;
@@ -416,16 +425,14 @@
 	}
 
 	//Get SDL_Rects
-	SDL_Rect clipRect = RectToSDLRect(rcView);
+	SDL_Rect clipRect = RectToSDLRectScaled(rcView);
+
+	SDL_Rect frameRect = RectToSDLRectScaled(rect);
 	
-	SDL_Rect frameRect = RectToSDLRect(rect);
-	frameRect = {frameRect.x * magnification, frameRect.y * magnification, frameRect.w * magnification, frameRect.h * magnification};
-	
 	//Get dest rect
 	SDL_Rect destRect = {x * magnification, y * magnification, frameRect.w, frameRect.h};
 	
 	//Set cliprect
-	clipRect = {clipRect.x * magnification, clipRect.y * magnification, clipRect.w * magnification, clipRect.h * magnification};
 	SDL_RenderSetClipRect(gRenderer, &clipRect);
 	
 	SDL_SetTextureBlendMode(surf[surf_no].texture, transparent ? SDL_BLENDMODE_BLEND : SDL_BLENDMODE_NONE);
@@ -452,8 +459,7 @@
 {
 	//Get rects
 	SDL_Rect rcSet = {x * magnification, y * magnification, (rect->right - rect->left) * magnification, (rect->bottom - rect->top) * magnification};
-	SDL_Rect frameRect = RectToSDLRect(rect);
-	frameRect = {frameRect.x * magnification, frameRect.y * magnification, frameRect.w * magnification, frameRect.h * magnification};
+	SDL_Rect frameRect = RectToSDLRectScaled(rect);
 
 	SDL_BlitSurface(surf[from].surface, &frameRect, surf[to].surface, &rcSet);
 	surf[to].needs_updating = true;
@@ -462,8 +468,7 @@
 void CortBox(RECT *rect, uint32_t col)
 {
 	//Get rect
-	SDL_Rect destRect = RectToSDLRect(rect);
-	destRect = {destRect.x * magnification, destRect.y * magnification, destRect.w * magnification, destRect.h * magnification};
+	SDL_Rect destRect = RectToSDLRectScaled(rect);
 	
 	//Set colour and draw
 	SDL_SetRenderDrawColor(gRenderer, (col & 0xFF0000) >> 16, (col & 0x00FF00) >> 8, col & 0x0000FF, 0xFF);
@@ -473,8 +478,7 @@
 void CortBox2(RECT *rect, uint32_t col, Surface_Ids surf_no)
 {
 	//Get rect
-	SDL_Rect destRect = RectToSDLRect(rect);
-	destRect = {destRect.x * magnification, destRect.y * magnification, destRect.w * magnification, destRect.h * magnification};
+	SDL_Rect destRect = RectToSDLRectScaled(rect);
 
 	const unsigned char col_red = (col & 0xFF0000) >> 16;
 	const unsigned char col_green = (col & 0x00FF00) >> 8;
--- a/src/Game.cpp
+++ b/src/Game.cpp
@@ -60,17 +60,18 @@
 	//Define rects
 	RECT rcClient = grcFull;
 	
-	RECT rect[10];
-	rect[0] = {0, 56, 8, 64};
-	rect[1] = {8, 56, 16, 64};
-	rect[2] = {16, 56, 24, 64};
-	rect[3] = {24, 56, 32, 64};
-	rect[4] = {32, 56, 40, 64};
-	rect[5] = {40, 56, 48, 64};
-	rect[6] = {48, 56, 56, 64};
-	rect[7] = {56, 56, 64, 64};
-	rect[8] = {64, 56, 72, 64};
-	rect[9] = {72, 56, 80, 64};
+	RECT rect[10] = {
+		{0, 56, 8, 64},
+		{8, 56, 16, 64},
+		{16, 56, 24, 64},
+		{24, 56, 32, 64},
+		{32, 56, 40, 64},
+		{40, 56, 48, 64},
+		{48, 56, 56, 64},
+		{56, 56, 64, 64},
+		{64, 56, 72, 64},
+		{72, 56, 80, 64},
+	};
 	
 	//Digits
 	int tbl[4] = {1000, 100, 10, 1};
@@ -117,7 +118,12 @@
 	SetFadeMask();
 	
 	//Reset cliprect and flags
-	grcGame = {0, 0, WINDOW_WIDTH, WINDOW_HEIGHT};
+	grcGame.left = 0;
+	//Non-vanilla: these three lines are widescreen-related(?)
+	grcGame.top = 0;
+	grcGame.right = WINDOW_WIDTH;
+	grcGame.bottom = WINDOW_HEIGHT;
+
 	g_GameFlags = 3;
 	
 	CutNoise();
@@ -216,36 +222,40 @@
 	RECT rcPeriod = {152, 88, 208, 96};
 	
 	//Character rects
-	RECT rcMyChar[4];
-	RECT rcCurly[4];
-	RECT rcToroko[4];
-	RECT rcKing[4];
-	RECT rcSu[4];
-	
-	rcMyChar[0] = {0, 16, 16, 32};
-	rcMyChar[1] = {16, 16, 32, 32};
-	rcMyChar[2] = {0, 16, 16, 32};
-	rcMyChar[3] = {32, 16, 48, 32};
+	RECT rcMyChar[4] = {
+		{0, 16, 16, 32},
+		{16, 16, 32, 32},
+		{0, 16, 16, 32},
+		{32, 16, 48, 32},
+	};
 
-	rcCurly[0] = {0, 112, 16, 128};
-	rcCurly[1] = {16, 112, 32, 128};
-	rcCurly[2] = {0, 112, 16, 128};
-	rcCurly[3] = {32, 112, 48, 128};
+	RECT rcCurly[4] = {
+		{0, 112, 16, 128},
+		{16, 112, 32, 128},
+		{0, 112, 16, 128},
+		{32, 112, 48, 128},
+	};
 	
-	rcToroko[0] = {64, 80, 80, 96};
-	rcToroko[1] = {80, 80, 96, 96};
-	rcToroko[2] = {64, 80, 80, 96};
-	rcToroko[3] = {96, 80, 112, 96};
+	RECT rcToroko[4] = {
+		{64, 80, 80, 96},
+		{80, 80, 96, 96},
+		{64, 80, 80, 96},
+		{96, 80, 112, 96},
+	};
 	
-	rcKing[0] = {224, 48, 240, 64};
-	rcKing[1] = {288, 48, 304, 64};
-	rcKing[2] = {224, 48, 240, 64};
-	rcKing[3] = {304, 48, 320, 64};
+	RECT rcKing[4] = {
+		{224, 48, 240, 64},
+		{288, 48, 304, 64},
+		{224, 48, 240, 64},
+		{304, 48, 320, 64},
+	};
 	
-	rcSu[0] = {0, 16, 16, 32};
-	rcSu[1] = {32, 16, 48, 32};
-	rcSu[2] = {0, 16, 16, 32};
-	rcSu[3] = {48, 16, 64, 32};
+	RECT rcSu[4] = {
+		{0, 16, 16, 32},
+		{32, 16, 48, 32},
+		{0, 16, 16, 32},
+		{48, 16, 64, 32},
+	};
 	
 	//Reset everything
 	InitCaret();
@@ -293,7 +303,12 @@
 	}
 	
 	//Reset cliprect, flags, and give the player the nikumaru counter
-	grcGame = {0, 0, WINDOW_WIDTH, WINDOW_HEIGHT};
+	grcGame.left = 0;
+	//Non-vanilla: these three lines are widescreen-related(?)
+	grcGame.top = 0;
+	grcGame.right = WINDOW_WIDTH;
+	grcGame.bottom = WINDOW_HEIGHT;
+
 	g_GameFlags = 0;
 	gMC.equip |= 0x100;
 	
--- a/src/MiniMap.cpp
+++ b/src/MiniMap.cpp
@@ -20,11 +20,12 @@
 
 void WriteMiniMapLine(int line)
 {
-	RECT rcLevel[4];
-	rcLevel[0] = {240, 24, 241, 25};
-	rcLevel[1] = {241, 24, 242, 25};
-	rcLevel[2] = {242, 24, 243, 25};
-	rcLevel[3] = {243, 24, 244, 25};
+	RECT rcLevel[4] = {
+		{240, 24, 241, 25},
+		{241, 24, 242, 25},
+		{242, 24, 243, 25},
+		{243, 24, 244, 25},
+	};
 	
 	for (int x = 0; x < gMap.width; x++)
 	{
@@ -105,7 +106,11 @@
 		
 		PutBitmap4(&grcGame, 0, 0, &grcGame, SURFACE_ID_SCREEN_GRAB);
 		
-		rcView = {(WINDOW_WIDTH / 2) - f * gMap.width / 16, (WINDOW_HEIGHT / 2) - f * gMap.length / 16, (WINDOW_WIDTH / 2) + f * gMap.width / 16, (WINDOW_HEIGHT / 2) + f * gMap.length / 16};
+		rcView.left = (WINDOW_WIDTH / 2) - f * gMap.width / 16;
+		rcView.right = (WINDOW_WIDTH / 2) + f * gMap.width / 16;
+		rcView.top = (WINDOW_HEIGHT / 2) - f * gMap.length / 16;
+		rcView.bottom = (WINDOW_HEIGHT / 2) + f * gMap.length / 16;
+
 		PutMapName(true);
 		CortBox(&rcView, 0);
 		
@@ -174,7 +179,12 @@
 		}
 
 		PutBitmap4(&grcGame, 0, 0, &grcGame, SURFACE_ID_SCREEN_GRAB);
-		rcView = {(WINDOW_WIDTH / 2) - f * gMap.width / 16, (WINDOW_HEIGHT / 2) - f * gMap.length / 16, (WINDOW_WIDTH / 2) + f * gMap.width / 16, (WINDOW_HEIGHT / 2) + f * gMap.length / 16};
+
+		rcView.left = (WINDOW_WIDTH / 2) - f * gMap.width / 16;
+		rcView.right = (WINDOW_WIDTH / 2) + f * gMap.width / 16;
+		rcView.top = (WINDOW_HEIGHT / 2) - f * gMap.length / 16;
+		rcView.bottom = (WINDOW_HEIGHT / 2) + f * gMap.length / 16;
+
 		PutMapName(true);
 		CortBox(&rcView, 0);
 
--- a/src/MyChar.cpp
+++ b/src/MyChar.cpp
@@ -28,8 +28,17 @@
 	memset(&gMC, 0, sizeof(MYCHAR));
 	gMC.cond = 0x80;
 	gMC.direct = 2;
-	gMC.view = {0x1000, 0x1000, 0x1000, 0x1000};
-	gMC.hit = {0xA00, 0x1000, 0xA00, 0x1000};
+
+	gMC.view.back = 0x1000;
+	gMC.view.top = 0x1000;
+	gMC.view.front = 0x1000;
+	gMC.view.bottom = 0x1000;
+
+	gMC.hit.back = 0xA00;
+	gMC.hit.top = 0x1000;
+	gMC.hit.front = 0xA00;
+	gMC.hit.bottom = 0x1000;
+
 	gMC.life = 3;
 	gMC.max_life = 3;
 	gMC.unit = 0;
@@ -37,35 +46,36 @@
 
 void AnimationMyChar(bool bKey)
 {
-	RECT rcLeft[12];
-	RECT rcRight[12];
-	
-	rcLeft[0] = {0, 0, 16, 16};
-	rcLeft[1] = {16, 0, 32, 16};
-	rcLeft[2] = {0, 0, 16, 16};
-	rcLeft[3] = {32, 0, 48, 16};
-	rcLeft[4] = {0, 0, 16, 16};
-	rcLeft[5] = {48, 0, 64, 16};
-	rcLeft[6] = {64, 0, 80, 16};
-	rcLeft[7] = {48, 0, 64, 16};
-	rcLeft[8] = {80, 0, 96, 16};
-	rcLeft[9] = {48, 0, 64, 16};
-	rcLeft[10] = {96, 0, 112, 16};
-	rcLeft[11] = {112, 0, 128, 16};
+	RECT rcLeft[12] = {
+		{0, 0, 16, 16},
+		{16, 0, 32, 16},
+		{0, 0, 16, 16},
+		{32, 0, 48, 16},
+		{0, 0, 16, 16},
+		{48, 0, 64, 16},
+		{64, 0, 80, 16},
+		{48, 0, 64, 16},
+		{80, 0, 96, 16},
+		{48, 0, 64, 16},
+		{96, 0, 112, 16},
+		{112, 0, 128, 16},
+	};
 
-	rcRight[0] = {0, 16, 16, 32};
-	rcRight[1] = {16, 16, 32, 32};
-	rcRight[2] = {0, 16, 16, 32};
-	rcRight[3] = {32, 16, 48, 32};
-	rcRight[4] = {0, 16, 16, 32};
-	rcRight[5] = {48, 16, 64, 32};
-	rcRight[6] = {64, 16, 80, 32};
-	rcRight[7] = {48, 16, 64, 32};
-	rcRight[8] = {80, 16, 96, 32};
-	rcRight[9] = {48, 16, 64, 32};
-	rcRight[10] = {96, 16, 112, 32};
-	rcRight[11] = {112, 16, 128, 32};
-	
+	RECT rcRight[12] = {
+		{0, 16, 16, 32},
+		{16, 16, 32, 32},
+		{0, 16, 16, 32},
+		{32, 16, 48, 32},
+		{0, 16, 16, 32},
+		{48, 16, 64, 32},
+		{64, 16, 80, 32},
+		{48, 16, 64, 32},
+		{80, 16, 96, 32},
+		{48, 16, 64, 32},
+		{96, 16, 112, 32},
+		{112, 16, 128, 32},
+	};
+
 	if (!(gMC.cond & 2))
 	{
 		if (gMC.flag & 8)
@@ -216,9 +226,10 @@
 			PutBitmap3(&grcGame, (gMC.x - gMC.view.left) / 0x200 - fx / 0x200, (gMC.y - gMC.view.top) / 0x200 - fy / 0x200, &rect, SURFACE_ID_MY_CHAR);
 			
 			//Draw airtank
-			RECT rcBubble[2];
-			rcBubble[0] = {56, 96, 80, 120};
-			rcBubble[1] = {80, 96, 104, 120};
+			RECT rcBubble[2] = {
+				{56, 96, 80, 120},
+				{80, 96, 104, 120},
+			};
 			
 			++gMC.bubble;
 			if (gMC.equip & 0x10 && gMC.flag & 0x100)
--- a/src/MycParam.cpp
+++ b/src/MycParam.cpp
@@ -331,10 +331,11 @@
 
 void PutMyAir(int x, int y)
 {
-	RECT rcAir[2];
-	rcAir[0] = {112, 72, 144, 80};
-	rcAir[1] = {112, 80, 144, 88};
-	
+	RECT rcAir[2] = {
+		{112, 72, 144, 80},
+		{112, 80, 144, 88},
+	};
+
 	if (!(gMC.equip & 0x10) && gMC.air_get)
 	{
 		//Draw how much air is left
@@ -351,11 +352,12 @@
 
 void PutTimeCounter(int x, int y)
 {
-	RECT rcTime[3];
-	rcTime[0] = {112, 104, 120, 112};
-	rcTime[1] = {120, 104, 128, 112};
-	rcTime[2] = {128, 104, 160, 112};
-	
+	RECT rcTime[3] = {
+		{112, 104, 120, 112},
+		{120, 104, 128, 112},
+		{128, 104, 160, 112},
+	};
+
 	if (gMC.equip & 0x100)
 	{
 		//Draw clock and increase time
--- a/src/NpcAct020.cpp
+++ b/src/NpcAct020.cpp
@@ -14,15 +14,14 @@
 //Computer
 void ActNpc020(NPCHAR *npc)
 {
-	RECT rcLeft[1];
-	RECT rcRight[3];
+	RECT rcLeft[1] = {288, 16, 320, 40};
 
-	rcLeft[0] = {288, 16, 320, 40};
+	RECT rcRight[3] = {
+		{288, 40, 320, 64},
+		{288, 40, 320, 64},
+		{288, 64, 320, 88},
+	};
 
-	rcRight[0] = {288, 40, 320, 64};
-	rcRight[1] = {288, 40, 320, 64};
-	rcRight[2] = {288, 64, 320, 88};
-
 	if (++npc->ani_wait > 3)
 	{
 		npc->ani_wait = 0;
@@ -52,10 +51,8 @@
 			break;
 	}
 
-	RECT rect[1];
+	RECT rect[1] = {224, 40, 240, 48};
 
-	rect[0]	= {224, 40, 240, 48};
-
 	npc->rect = rect[0];
 }
 
@@ -62,11 +59,11 @@
 //Teleporter
 void ActNpc022(NPCHAR *npc)
 {
-	RECT rect[2];
+	RECT rect[2] = {
+		{240, 16, 264, 48},
+		{248, 152, 272, 184},
+	};
 
-	rect[0] = {240, 16, 264, 48};
-	rect[1] = {248, 152, 272, 184};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -86,17 +83,17 @@
 //Teleporter lights
 void ActNpc023(NPCHAR *npc)
 {
-	RECT rect[8];
+	RECT rect[8] = {
+		{264, 16, 288, 20},
+		{264, 20, 288, 24},
+		{264, 24, 288, 28},
+		{264, 28, 288, 32},
+		{264, 32, 288, 36},
+		{264, 36, 288, 40},
+		{264, 40, 288, 44},
+		{264, 44, 288, 48},
+	};
 
-	rect[0] = {264, 16, 288, 20};
-	rect[1] = {264, 20, 288, 24};
-	rect[2] = {264, 24, 288, 28};
-	rect[3] = {264, 28, 288, 32};
-	rect[4] = {264, 32, 288, 36};
-	rect[5] = {264, 36, 288, 40};
-	rect[6] = {264, 40, 288, 44};
-	rect[7] = {264, 44, 288, 48};
-
 	if (++npc->ani_wait > 1)
 	{
 		npc->ani_wait = 0;
@@ -112,23 +109,24 @@
 //Power Critter
 void ActNpc024(NPCHAR *npc)
 {
-	RECT rcLeft[6];
-	RECT rcRight[6];
+	RECT rcLeft[6] = {
+		{0, 0, 24, 24},
+		{24, 0, 48, 24},
+		{48, 0, 72, 24},
+		{72, 0, 96, 24},
+		{96, 0, 120, 24},
+		{120, 0, 144, 24},
+	};
 
-	rcLeft[0] = {0, 0, 24, 24};
-	rcLeft[1] = {24, 0, 48, 24};
-	rcLeft[2] = {48, 0, 72, 24};
-	rcLeft[3] = {72, 0, 96, 24};
-	rcLeft[4] = {96, 0, 120, 24};
-	rcLeft[5] = {120, 0, 144, 24};
+	RECT rcRight[6] = {
+		{0, 24, 24, 48},
+		{24, 24, 48, 48},
+		{48, 24, 72, 48},
+		{72, 24, 96, 48},
+		{96, 24, 120, 48},
+		{120, 24, 144, 48},
+	};
 
-	rcRight[0] = {0, 24, 24, 48};
-	rcRight[1] = {24, 24, 48, 48};
-	rcRight[2] = {48, 24, 72, 48};
-	rcRight[3] = {72, 24, 96, 48};
-	rcRight[4] = {96, 24, 120, 48};
-	rcRight[5] = {120, 24, 144, 48};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -290,11 +288,11 @@
 // Egg Corridor lift
 void ActNpc025(NPCHAR *npc)
 {
-	RECT rcLeft[2];
+	RECT rcLeft[2] = {
+		{256, 64, 288, 80},
+		{256, 80, 288, 96},
+	};
 
-	rcLeft[0] = {256, 64, 288, 80};
-	rcLeft[1] = {256, 80, 288, 96};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -493,19 +491,20 @@
 	npc->x += npc->xm;
 	npc->y += npc->ym;
 
-	RECT rect_left[4];
-	RECT rect_right[4];
+	RECT rect_left[4] = {
+		{32, 80, 48, 96},
+		{48, 80, 64, 96},
+		{64, 80, 80, 96},
+		{80, 80, 96, 96},
+	};
 
-	rect_left[0] = {32, 80, 48, 96};
-	rect_left[1] = {48, 80, 64, 96};
-	rect_left[2] = {64, 80, 80, 96};
-	rect_left[3] = {80, 80, 96, 96};
+	RECT rect_right[4] = {
+		{32, 96, 48, 112},
+		{48, 96, 64, 112},
+		{64, 96, 80, 112},
+		{80, 96, 96, 112},
+	};
 
-	rect_right[0] = {32, 96, 48, 112};
-	rect_right[1] = {48, 96, 64, 112};
-	rect_right[2] = {64, 96, 80, 112};
-	rect_right[3] = {80, 96, 96, 112};
-
 	if (npc->act_no == 3)
 	{
 		npc->ani_no = 3;
@@ -531,10 +530,8 @@
 //Death trap
 void ActNpc027(NPCHAR *npc)
 {
-	RECT rcLeft[1];
+	RECT rcLeft[1] = {96, 64, 128, 88};
 
-	rcLeft[0] = {96, 64, 128, 88};
-
 	npc->rect = rcLeft[npc->ani_no];
 }
 
@@ -541,23 +538,24 @@
 //Flying Critter (Grasstown)
 void ActNpc028(NPCHAR *npc)
 {
-	RECT rcLeft[6];
-	RECT rcRight[6];
+	RECT rcLeft[6] = {
+		{0, 48, 16, 64},
+		{16, 48, 32, 64},
+		{32, 48, 48, 64},
+		{48, 48, 64, 64},
+		{64, 48, 80, 64},
+		{80, 48, 96, 64},
+	};
 
-	rcLeft[0] = {0, 48, 16, 64};
-	rcLeft[1] = {16, 48, 32, 64};
-	rcLeft[2] = {32, 48, 48, 64};
-	rcLeft[3] = {48, 48, 64, 64};
-	rcLeft[4] = {64, 48, 80, 64};
-	rcLeft[5] = {80, 48, 96, 64};
+	RECT rcRight[6] = {
+		{0, 64, 16, 80},
+		{16, 64, 32, 80},
+		{32, 64, 48, 80},
+		{48, 64, 64, 80},
+		{64, 64, 80, 80},
+		{80, 64, 96, 80},
+	};
 
-	rcRight[0] = {0, 64, 16, 80};
-	rcRight[1] = {16, 64, 32, 80};
-	rcRight[2] = {32, 64, 48, 80};
-	rcRight[3] = {48, 64, 64, 80};
-	rcRight[4] = {64, 64, 80, 80};
-	rcRight[5] = {80, 64, 96, 80};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -721,15 +719,16 @@
 //Cthulhu
 void ActNpc029(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{0, 192, 16, 216},
+		{16, 192, 32, 216},
+	};
 
-	rcLeft[0] = {0, 192, 16, 216};
-	rcLeft[1] = {16, 192, 32, 216};
+	RECT rcRight[2] = {
+		{0, 216, 16, 240},
+		{16, 216, 32, 240},
+	};
 
-	rcRight[0] = {0, 216, 16, 240};
-	rcRight[1] = {16, 216, 32, 240};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -755,12 +754,12 @@
 //Gunsmith
 void ActNpc030(NPCHAR *npc)
 {
-	RECT rc[3];
+	RECT rc[3] = {
+		{48, 0, 64, 16},
+		{48, 16, 64, 32},
+		{0, 32, 16, 48},
+	};
 
-	rc[0] = {48, 0, 64, 16};
-	rc[1] = {48, 16, 64, 32};
-	rc[2] = {0, 32, 16, 48};
-
 	if (npc->direct != 0)
 	{
 		switch (npc->act_no)
@@ -815,21 +814,22 @@
 //Bat (Grasstown, hanging)
 void ActNpc031(NPCHAR *npc)
 {
-	RECT rcLeft[5];
-	RECT rcRight[5];
+	RECT rcLeft[5] = {
+		{0, 80, 16, 96},
+		{16, 80, 32, 96},
+		{32, 80, 48, 96},
+		{48, 80, 64, 96},
+		{64, 80, 80, 96},
+	};
 
-	rcLeft[0] = {0, 80, 16, 96};
-	rcLeft[1] = {16, 80, 32, 96};
-	rcLeft[2] = {32, 80, 48, 96};
-	rcLeft[3] = {48, 80, 64, 96};
-	rcLeft[4] = {64, 80, 80, 96};
+	RECT rcRight[5] = {
+		{0, 96, 16, 112},
+		{16, 96, 32, 112},
+		{32, 96, 48, 112},
+		{48, 96, 64, 112},
+		{64, 96, 80, 112},
+	};
 
-	rcRight[0] = {0, 96, 16, 112};
-	rcRight[1] = {16, 96, 32, 112};
-	rcRight[2] = {32, 96, 48, 112};
-	rcRight[3] = {48, 96, 64, 112};
-	rcRight[4] = {64, 96, 80, 112};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -946,11 +946,11 @@
 //Life capsule
 void ActNpc032(NPCHAR *npc)
 {
-	RECT rect[2];
+	RECT rect[2] = {
+		{32, 96, 48, 112},
+		{48, 96, 64, 112},
+	};
 
-	rect[0] = {32, 96, 48, 112};
-	rect[1] = {48, 96, 64, 112};
-
 	if (++npc->ani_wait > 2)
 	{
 		npc->ani_wait = 0;
@@ -981,11 +981,11 @@
 	npc->y += npc->ym;
 	npc->x += npc->xm;
 
-	RECT rect_left[2];
+	RECT rect_left[2] = {
+		{240, 64, 256, 80},
+		{240, 80, 256, 96},
+	};
 
-	rect_left[0] = {240, 64, 256, 80};
-	rect_left[1] = {240, 80, 256, 96};
-
 	if (++npc->ani_wait > 2)
 	{
 		npc->ani_wait = 0;
@@ -1006,12 +1006,9 @@
 //Bed
 void ActNpc034(NPCHAR *npc)
 {
-	RECT rcLeft[1];
-	RECT rcRight[1];
+	RECT rcLeft[1] = {192, 48, 224, 64};
+	RECT rcRight[1] = {192, 184, 224, 200};
 
-	rcLeft[0] = {192, 48, 224, 64};
-	rcRight[0] = {192, 184, 224, 200};
-
 	if (npc->direct == 0)
 		npc->rect = rcLeft[0];
 	else
@@ -1074,19 +1071,20 @@
 			break;
 	}
 
-	RECT rcLeft[4];
-	RECT rcRight[4];
+	RECT rcLeft[4] = {
+		{96, 64, 120, 96},
+		{120, 64, 144, 96},
+		{144, 64, 168, 96},
+		{168, 64, 192, 96},
+	};
 
-	rcLeft[0] = {96, 64, 120, 96};
-	rcLeft[1] = {120, 64, 144, 96};
-	rcLeft[2] = {144, 64, 168, 96};
-	rcLeft[3] = {168, 64, 192, 96};
+	RECT rcRight[4] = {
+		{96, 96, 120, 128},
+		{120, 96, 144, 128},
+		{144, 96, 168, 128},
+		{168, 96, 192, 128},
+	};
 
-	rcRight[0] = {96, 96, 120, 128};
-	rcRight[1] = {120, 96, 144, 128};
-	rcRight[2] = {144, 96, 168, 128};
-	rcRight[3] = {168, 96, 192, 128};
-
 	if (npc->direct == 0)
 		npc->rect = rcLeft[npc->ani_no];
 	else
@@ -1249,23 +1247,24 @@
 	npc->x += npc->xm;
 	npc->y += npc->ym;
 
-	RECT rect_left[6];
-	RECT rect_right[6];
+	RECT rect_left[6] = {
+		{0, 0, 40, 24},
+		{40, 0, 80, 24},
+		{80, 0, 120, 24},
+		{120, 0, 160, 24},
+		{160, 48, 200, 72},
+		{200, 48, 240, 72},
+	};
 
-	rect_left[0] = {0, 0, 40, 24};
-	rect_left[1] = {40, 0, 80, 24};
-	rect_left[2] = {80, 0, 120, 24};
-	rect_left[3] = {120, 0, 160, 24};
-	rect_left[4] = {160, 48, 200, 72};
-	rect_left[5] = {200, 48, 240, 72};
+	RECT rect_right[6] = {
+		{0, 24, 40, 48},
+		{40, 24, 80, 48},
+		{80, 24, 120, 48},
+		{120, 24, 160, 48},
+		{160, 72, 200, 96},
+		{200, 72, 240, 96},
+	};
 
-	rect_right[0] = {0, 24, 40, 48};
-	rect_right[1] = {40, 24, 80, 48};
-	rect_right[2] = {80, 24, 120, 48};
-	rect_right[3] = {120, 24, 160, 48};
-	rect_right[4] = {160, 72, 200, 96};
-	rect_right[5] = {200, 72, 240, 96};
-
 	if (npc->direct == 0)
 		npc->rect = rect_left[npc->ani_no];
 	else
@@ -1275,11 +1274,11 @@
 //Signpost
 void ActNpc037(NPCHAR *npc)
 {
-	RECT rect[2];
+	RECT rect[2] = {
+		{192, 64, 208, 80},
+		{208, 64, 224, 80},
+	};
 
-	rect[0] = {192, 64, 208, 80};
-	rect[1] = {208, 64, 224, 80};
-
 	if (++npc->ani_wait > 1)
 	{
 		npc->ani_wait = 0;
@@ -1295,13 +1294,13 @@
 //Fireplace
 void ActNpc038(NPCHAR *npc)
 {
-	RECT rect[4];
+	RECT rect[4] = {
+		{128, 64, 144, 80},
+		{144, 64, 160, 80},
+		{160, 64, 176, 80},
+		{176, 64, 192, 80},
+	};
 
-	rect[0] = {128, 64, 144, 80};
-	rect[1] = {144, 64, 160, 80};
-	rect[2] = {160, 64, 176, 80};
-	rect[3] = {176, 64, 192, 80};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1331,10 +1330,10 @@
 //Save sign
 void ActNpc039(NPCHAR *npc)
 {
-	RECT rect[2];
-
-	rect[0] = {224, 64, 240, 80};
-	rect[1] = {240, 64, 256, 80};
+	RECT rect[2] = {
+		{224, 64, 240, 80},
+		{240, 64, 256, 80},
+	};
 
 	if (npc->direct == 0)
 		npc->ani_no = 0;
--- a/src/NpcAct040.cpp
+++ b/src/NpcAct040.cpp
@@ -14,25 +14,26 @@
 //Santa
 void ActNpc040(NPCHAR *npc)
 {
-	RECT rcLeft[7];
-	RECT rcRight[7];
-	
-	rcLeft[0] = {0, 32, 16, 48};
-	rcLeft[1] = {16, 32, 32, 48};
-	rcLeft[2] = {32, 32, 48, 48};
-	rcLeft[3] = {0, 32, 16, 48};
-	rcLeft[4] = {48, 32, 64, 48};
-	rcLeft[5] = {0, 32, 16, 48};
-	rcLeft[6] = {64, 32, 80, 48};
-	
-	rcRight[0] = {0, 48, 16, 64};
-	rcRight[1] = {16, 48, 32, 64};
-	rcRight[2] = {32, 48, 48, 64};
-	rcRight[3] = {0, 48, 16, 64};
-	rcRight[4] = {48, 48, 64, 64};
-	rcRight[5] = {0, 48, 16, 64};
-	rcRight[6] = {64, 48, 80, 64};
-	
+	RECT rcLeft[7] = {
+		{0, 32, 16, 48},
+		{16, 32, 32, 48},
+		{32, 32, 48, 48},
+		{0, 32, 16, 48},
+		{48, 32, 64, 48},
+		{0, 32, 16, 48},
+		{64, 32, 80, 48},
+	};
+
+	RECT rcRight[7] = {
+		{0, 48, 16, 64},
+		{16, 48, 32, 64},
+		{32, 48, 48, 64},
+		{0, 48, 16, 64},
+		{48, 48, 64, 64},
+		{0, 48, 16, 64},
+		{64, 48, 80, 64},
+	};
+
 	switch ( npc->act_no )
 	{
 		case 0:
@@ -87,19 +88,17 @@
 			break;
 	}
 	
-	if (npc->direct)
-		npc->rect = rcRight[npc->ani_no];
-	else
+	if (npc->direct == 0)
 		npc->rect = rcLeft[npc->ani_no];
+	else
+		npc->rect = rcRight[npc->ani_no];
 }
 
 //Busted Door
 void ActNpc041(NPCHAR *npc)
 {
-	RECT rect[1];
+	RECT rect[1] = {0, 80, 48, 112};
 
-	rect[0] = {0, 80, 48, 112};
-
 	if (npc->act_no == 0)
 	{
 		++npc->act_no;
@@ -112,37 +111,38 @@
 //Sue
 void ActNpc042(NPCHAR *npc)
 {
-	RECT rcLeft[13];
-	RECT rcRight[13];
+	RECT rcLeft[13] = {
+		{0, 0, 16, 16},
+		{16, 0, 32, 16},
+		{32, 0, 48, 16},
+		{0, 0, 16, 16},
+		{48, 0, 64, 16},
+		{0, 0, 16, 16},
+		{64, 0, 80, 16},
+		{80, 32, 96, 48},
+		{96, 32, 112, 48},
+		{128, 32, 144, 48},
+		{0, 0, 16, 16},
+		{112, 32, 128, 48},
+		{160, 32, 176, 48},
+	};
 
-	rcLeft[0] = {0, 0, 16, 16};
-	rcLeft[1] = {16, 0, 32, 16};
-	rcLeft[2] = {32, 0, 48, 16};
-	rcLeft[3] = {0, 0, 16, 16};
-	rcLeft[4] = {48, 0, 64, 16};
-	rcLeft[5] = {0, 0, 16, 16};
-	rcLeft[6] = {64, 0, 80, 16};
-	rcLeft[7] = {80, 32, 96, 48};
-	rcLeft[8] = {96, 32, 112, 48};
-	rcLeft[9] = {128, 32, 144, 48};
-	rcLeft[10] = {0, 0, 16, 16};
-	rcLeft[11] = {112, 32, 128, 48};
-	rcLeft[12] = {160, 32, 176, 48};
+	RECT rcRight[13] = {
+		{0, 16, 16, 32},
+		{16, 16, 32, 32},
+		{32, 16, 48, 32},
+		{0, 16, 16, 32},
+		{48, 16, 64, 32},
+		{0, 16, 16, 32},
+		{64, 16, 80, 32},
+		{80, 48, 96, 64},
+		{96, 48, 112, 64},
+		{128, 48, 144, 64},
+		{0, 16, 16, 32},
+		{112, 48, 128, 64},
+		{160, 48, 176, 64},
+	};
 
-	rcRight[0] = {0, 16, 16, 32};
-	rcRight[1] = {16, 16, 32, 32};
-	rcRight[2] = {32, 16, 48, 32};
-	rcRight[3] = {0, 16, 16, 32};
-	rcRight[4] = {48, 16, 64, 32};
-	rcRight[5] = {0, 16, 16, 32};
-	rcRight[6] = {64, 16, 80, 32};
-	rcRight[7] = {80, 48, 96, 64};
-	rcRight[8] = {96, 48, 112, 64};
-	rcRight[9] = {128, 48, 144, 64};
-	rcRight[10] = {0, 16, 16, 32};
-	rcRight[11] = {112, 48, 128, 64};
-	rcRight[12] = {160, 48, 176, 64};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -397,12 +397,9 @@
 //Chalkboard
 void ActNpc043(NPCHAR *npc)
 {
-	RECT rcLeft[1];
-	RECT rcRight[1];
+	RECT rcLeft = {128, 80, 168, 112};
+	RECT rcRight = {168, 80, 208, 112};
 
-	rcLeft[0] = {128, 80, 168, 112};
-	rcRight[0] = {168, 80, 208, 112};
-
 	if (npc->act_no == 0)
 	{
 		npc->act_no = 1;
@@ -410,25 +407,27 @@
 	}
 
 	if (npc->direct == 0)
-		npc->rect = rcLeft[0];
+		npc->rect = rcLeft;
 	else
-		npc->rect = rcRight[0];
+		npc->rect = rcRight;
 }
 
 //Polish
 void ActNpc044(NPCHAR *npc)
 {
-	RECT rcRight[3];
-	RECT rcLeft[3];
+	// Yeah, Pixel defined these backwards for some reason.
+	RECT rcRight[3] = {
+		{0, 0, 32, 32},
+		{32, 0, 64, 32},
+		{64, 0, 96, 32},
+	};
 
-	rcRight[0] = {0, 0, 32, 32};
-	rcRight[1] = {32, 0, 64, 32};
-	rcRight[2] = {64, 0, 96, 32};
+	RECT rcLeft[3] = {
+		{0, 0, 32, 32},
+		{96, 0, 128, 32},
+		{128, 0, 160, 32},
+	};
 
-	rcLeft[0] = {0, 0, 32, 32};
-	rcLeft[1] = {96, 0, 128, 32};
-	rcLeft[2] = {128, 0, 160, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -598,12 +597,12 @@
 //Baby
 void ActNpc045(NPCHAR *npc)
 {
-	RECT rect[3];
+	RECT rect[3] = {
+		{0, 32, 16, 48},
+		{16, 32, 32, 48},
+		{32, 32, 48, 48},
+	};
 
-	rect[0] = {0, 32, 16, 48};
-	rect[1] = {16, 32, 32, 48};
-	rect[2] = {32, 32, 48, 48};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -667,8 +666,7 @@
 //H/V Trigger
 void ActNpc046(NPCHAR *npc)
 {
-	RECT rect[1];
-	rect[0] = {0, 0, 16, 16};
+	RECT rect = {0, 0, 16, 16};
 
 	npc->bits |= 0x100;
 
@@ -687,7 +685,7 @@
 			npc->y += 0x5FF;
 	}
 
-	npc->rect = rect[0];
+	npc->rect = rect;
 }
 
 //Sandcroc
@@ -782,14 +780,14 @@
 			break;
 	}
 
-	RECT rect[5];
+	RECT rect[5] = {
+		{0, 48, 48, 80},
+		{48, 48, 96, 80},
+		{96, 48, 144, 80},
+		{144, 48, 192, 80},
+		{192, 48, 240, 80},
+	};
 
-	rect[0] = {0, 48, 48, 80};
-	rect[1] = {48, 48, 96, 80};
-	rect[2] = {96, 48, 144, 80};
-	rect[3] = {144, 48, 192, 80};
-	rect[4] = {192, 48, 240, 80};
-
 	npc->rect = rect[npc->ani_no];
 }
 
@@ -827,13 +825,16 @@
 	npc->y += npc->ym;
 	npc->x += npc->xm;
 	
-	RECT rcLeft[2];
-	RECT rcRight[2];
-	rcLeft[0] = {288, 88, 304, 104};
-	rcLeft[1] = {304, 88, 320, 104};
-	rcRight[0] = {288, 104, 304, 120};
-	rcRight[1] = {304, 104, 320, 120};
-	
+	RECT rcLeft[2] = {
+		{288, 88, 304, 104},
+		{304, 88, 320, 104},
+	};
+
+	RECT rcRight[2] = {
+		{288, 104, 304, 120},
+		{304, 104, 320, 120},
+	};
+		
 	if (++npc->ani_wait > 2)
 	{
 		npc->ani_wait = 0;
@@ -977,17 +978,18 @@
 	npc->x += npc->xm;
 	npc->y += npc->ym;
 
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{0, 80, 32, 104},
+		{32, 80, 64, 104},
+		{64, 80, 96, 104},
+	};
 
-	rcLeft[0] = {0, 80, 32, 104};
-	rcLeft[1] = {32, 80, 64, 104};
-	rcLeft[2] = {64, 80, 96, 104};
+	RECT rcRight[3] = {
+		{0, 104, 32, 128},
+		{32, 104, 64, 128},
+		{64, 104, 96, 128},
+	};
 
-	rcRight[0] = {0, 104, 32, 128};
-	rcRight[1] = {32, 104, 64, 128};
-	rcRight[2] = {64, 104, 96, 128};
-
 	if (npc->direct == 0)
 		npc->rect = rcLeft[npc->ani_no];
 	else
@@ -1062,13 +1064,13 @@
 	if (npc->ym < -0x5FF)
 		npc->ym = -0x5FF;
 
-	RECT rect[4];
+	RECT rect[4] = {
+		{48, 32, 64, 48},
+		{64, 32, 80, 48},
+		{80, 32, 96, 48},
+		{96, 32, 112, 48},
+	};
 
-	rect[0] = {48, 32, 64, 48};
-	rect[1] = {64, 32, 80, 48};
-	rect[2] = {80, 32, 96, 48};
-	rect[3] = {96, 32, 112, 48};
-
 	if (npc->direct == 0)
 	{
 		if (++npc->ani_wait > 1)
@@ -1194,21 +1196,22 @@
 	npc->x += npc->xm;
 	npc->y += npc->ym;
 
-	RECT rect_left[5];
-	RECT rect_right[5];
+	RECT rect_left[5] = {
+		{96, 80, 128, 112},
+		{128, 80, 160, 112},
+		{160, 80, 192, 112},
+		{192, 80, 224, 112},
+		{224, 80, 256, 112},
+	};
 
-	rect_left[0] = {96, 80, 128, 112};
-	rect_left[1] = {128, 80, 160, 112};
-	rect_left[2] = {160, 80, 192, 112};
-	rect_left[3] = {192, 80, 224, 112};
-	rect_left[4] = {224, 80, 256, 112};
+	RECT rect_right[5] = {
+		{96, 112, 128, 144},
+		{128, 112, 160, 144},
+		{160, 112, 192, 144},
+		{192, 112, 224, 144},
+		{224, 112, 256, 144},
+	};
 
-	rect_right[0] = {96, 112, 128, 144};
-	rect_right[1] = {128, 112, 160, 144};
-	rect_right[2] = {160, 112, 192, 144};
-	rect_right[3] = {192, 112, 224, 144};
-	rect_right[4] = {224, 112, 256, 144};
-
 	if (npc->shock)
 	{
 		npc->ani_no = 4;
@@ -1241,25 +1244,24 @@
 //Bliue robot (sitting)
 void ActNpc052(NPCHAR *npc)
 {
-	RECT rect[1];
+	RECT rect = {240, 96, 256, 112};
 
-	rect[0] = {240, 96, 256, 112};
-
-	npc->rect = rect[0];
+	npc->rect = rect;
 }
 
 //Skullstep leg
 void ActNpc053(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{0, 128, 24, 144},
+		{24, 128, 48, 144},
+	};
 
-	rcLeft[0] = {0, 128, 24, 144};
-	rcLeft[1] = {24, 128, 48, 144};
+	RECT rcRight[2] = {
+		{48, 128, 72, 144},
+		{72, 128, 96, 144},
+	};
 
-	rcRight[0] = {48, 128, 72, 144};
-	rcRight[1] = {72, 128, 96, 144};
-
 	if (npc->pNpc->code_char == 3)
 	{
 		VanishNpChar(npc);
@@ -1317,17 +1319,18 @@
 //Skullstep
 void ActNpc054(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{0, 80, 32, 104},
+		{32, 80, 64, 104},
+		{64, 80, 96, 104},
+	};
 
-	rcLeft[0] = {0, 80, 32, 104};
-	rcLeft[1] = {32, 80, 64, 104};
-	rcLeft[2] = {64, 80, 96, 104};
+	RECT rcRight[3] = {
+		{0, 104, 32, 128},
+		{32, 104, 64, 128},
+		{64, 104, 96, 128},
+	};
 
-	rcRight[0] = {0, 104, 32, 128};
-	rcRight[1] = {32, 104, 64, 128};
-	rcRight[2] = {64, 104, 96, 128};
-
 	unsigned char deg;
 	switch (npc->act_no)
 	{
@@ -1420,26 +1423,27 @@
 		npc->rect = rcRight[npc->ani_no];
 }
 
-//Cairn
+//Kazuka
 void ActNpc055(NPCHAR *npc)
 {
-	RECT rcLeft[6];
-	RECT rcRight[6];
+	RECT rcLeft[6] = {
+		{192, 192, 208, 216},
+		{208, 192, 224, 216},
+		{192, 192, 208, 216},
+		{224, 192, 240, 216},
+		{192, 192, 208, 216},
+		{240, 192, 256, 216},
+	};
 
-	rcLeft[0] = {192, 192, 208, 216};
-	rcLeft[1] = {208, 192, 224, 216};
-	rcLeft[2] = {192, 192, 208, 216};
-	rcLeft[3] = {224, 192, 240, 216};
-	rcLeft[4] = {192, 192, 208, 216};
-	rcLeft[5] = {240, 192, 256, 216};
+	RECT rcRight[6] = {
+		{192, 216, 208, 240},
+		{208, 216, 224, 240},
+		{192, 216, 208, 240},
+		{224, 216, 240, 240},
+		{192, 216, 208, 240},
+		{240, 216, 256, 240},
+	};
 
-	rcRight[0] = {192, 216, 208, 240};
-	rcRight[1] = {208, 216, 224, 240};
-	rcRight[2] = {192, 216, 208, 240};
-	rcRight[3] = {224, 216, 240, 240};
-	rcRight[4] = {192, 216, 208, 240};
-	rcRight[5] = {240, 216, 256, 240};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1490,17 +1494,18 @@
 //Beetle (Sand Zone)
 void ActNpc056(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{0, 144, 16, 160},
+		{16, 144, 32, 160},
+		{32, 144, 48, 160},
+	};
 
-	rcLeft[0] = {0, 144, 16, 160};
-	rcLeft[1] = {16, 144, 32, 160};
-	rcLeft[2] = {32, 144, 48, 160};
+	RECT rcRight[3] = {
+		{0, 160, 16, 176},
+		{16, 160, 32, 176},
+		{32, 160, 48, 176},
+	};
 
-	rcRight[0] = {0, 160, 16, 176};
-	rcRight[1] = {16, 160, 32, 176};
-	rcRight[2] = {32, 160, 48, 176};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1721,21 +1726,22 @@
 	npc->x += npc->xm;
 	npc->y += npc->ym;
 
-	RECT rect_left[5];
-	RECT rect_right[5];
+	RECT rect_left[5] = {
+		{96, 80, 128, 112},
+		{128, 80, 160, 112},
+		{160, 80, 192, 112},
+		{192, 80, 224, 112},
+		{224, 80, 256, 112},
+	};
 
-	rect_left[0] = {96, 80, 128, 112};
-	rect_left[1] = {128, 80, 160, 112};
-	rect_left[2] = {160, 80, 192, 112};
-	rect_left[3] = {192, 80, 224, 112};
-	rect_left[4] = {224, 80, 256, 112};
+	RECT rect_right[5] = {
+		{96, 112, 128, 144},
+		{128, 112, 160, 144},
+		{160, 112, 192, 144},
+		{192, 112, 224, 144},
+		{224, 112, 256, 144},
+	};
 
-	rect_right[0] = {96, 112, 128, 144};
-	rect_right[1] = {128, 112, 160, 144};
-	rect_right[2] = {160, 112, 192, 144};
-	rect_right[3] = {192, 112, 224, 144};
-	rect_right[4] = {224, 112, 256, 144};
-
 	if (npc->shock)
 	{
 		npc->ani_no = 4;
@@ -1761,17 +1767,18 @@
 //Basu (Egg Corridor)
 void ActNpc058(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{192, 0, 216, 24},
+		{216, 0, 240, 24},
+		{240, 0, 264, 24},
+	};
 
-	rcLeft[0] = {192, 0, 216, 24};
-	rcLeft[1] = {216, 0, 240, 24};
-	rcLeft[2] = {240, 0, 264, 24};
+	RECT rcRight[3] = {
+		{192, 24, 216, 48},
+		{216, 24, 240, 48},
+		{240, 24, 264, 48},
+	};
 
-	rcRight[0] = {192, 24, 216, 48};
-	rcRight[1] = {216, 24, 240, 48};
-	rcRight[2] = {240, 24, 264, 48};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1915,12 +1922,12 @@
 //Eye door
 void ActNpc059(NPCHAR *npc)
 {
-	RECT rcLeft[4];
-
-	rcLeft[0] = {224, 16, 240, 40};
-	rcLeft[1] = {208, 80, 224, 104};
-	rcLeft[2] = {224, 80, 240, 104};
-	rcLeft[3] = {240, 80, 256, 104};
+	RECT rcLeft[4] = {
+		{224, 16, 240, 40},
+		{208, 80, 224, 104},
+		{224, 80, 240, 104},
+		{240, 80, 256, 104},
+	};
 
 	switch (npc->act_no)
 	{
--- a/src/NpcAct060.cpp
+++ b/src/NpcAct060.cpp
@@ -17,28 +17,29 @@
 //Toroko
 void ActNpc060(NPCHAR *npc)
 {
-	RECT rcLeft[8];
-	RECT rcRight[8];
+	RECT rcLeft[8] = {
+		{0, 64, 16, 80},
+		{16, 64, 32, 80},
+		{32, 64, 48, 80},
+		{16, 64, 32, 80},
+		{48, 64, 64, 80},
+		{16, 64, 32, 80},
+		{112, 64, 128, 80},
+		{128, 64, 144, 80},
+	};
 
-	rcLeft[0] = {0, 64, 16, 80};
-	rcLeft[1] = {16, 64, 32, 80};
-	rcLeft[2] = {32, 64, 48, 80};
-	rcLeft[3] = {16, 64, 32, 80};
-	rcLeft[4] = {48, 64, 64, 80};
-	rcLeft[5] = {16, 64, 32, 80};
-	rcLeft[6] = {112, 64, 128, 80};
-	rcLeft[7] = {128, 64, 144, 80};
+	RECT rcRight[8] = {
+		{0, 80, 16, 96},
+		{16, 80, 32, 96},
+		{32, 80, 48, 96},
+		{16, 80, 32, 96},
+		{48, 80, 64, 96},
+		{16, 80, 32, 96},
+		{112, 80, 128, 96},
+		{128, 80, 144, 96},
+	};
 
-	rcRight[0] = {0, 80, 16, 96};
-	rcRight[1] = {16, 80, 32, 96};
-	rcRight[2] = {32, 80, 48, 96};
-	rcRight[3] = {16, 80, 32, 96};
-	rcRight[4] = {48, 80, 64, 96};
-	rcRight[5] = {16, 80, 32, 96};
-	rcRight[6] = {112, 80, 128, 96};
-	rcRight[7] = {128, 80, 144, 96};
-
-	switch ( npc->act_no )
+	switch (npc->act_no)
 	{
 		case 0:
 			npc->act_no = 1;
@@ -196,33 +197,34 @@
 //King
 void ActNpc061(NPCHAR *npc)
 {
-	RECT rcLeft[11];
-	RECT rcRight[11];
+	RECT rcLeft[11] = {
+		{224, 32, 240, 48},
+		{240, 32, 256, 48},
+		{256, 32, 272, 48},
+		{272, 32, 288, 48},
+		{288, 32, 304, 48},
+		{224, 32, 240, 48},
+		{304, 32, 320, 48},
+		{224, 32, 240, 48},
+		{272, 32, 288, 48},
+		{0, 0, 0, 0},
+		{112, 32, 128, 48},
+	};
 
-	rcLeft[0] = {224, 32, 240, 48};
-	rcLeft[1] = {240, 32, 256, 48};
-	rcLeft[2] = {256, 32, 272, 48};
-	rcLeft[3] = {272, 32, 288, 48};
-	rcLeft[4] = {288, 32, 304, 48};
-	rcLeft[5] = {224, 32, 240, 48};
-	rcLeft[6] = {304, 32, 320, 48};
-	rcLeft[7] = {224, 32, 240, 48};
-	rcLeft[8] = {272, 32, 288, 48};
-	rcLeft[9] = {0, 0, 0, 0};
-	rcLeft[10] = {112, 32, 128, 48};
+	RECT rcRight[11] = {
+		{224, 48, 240, 64},
+		{240, 48, 256, 64},
+		{256, 48, 272, 64},
+		{272, 48, 288, 64},
+		{288, 48, 304, 64},
+		{224, 48, 240, 64},
+		{304, 48, 320, 64},
+		{224, 48, 240, 64},
+		{272, 48, 288, 64},
+		{0, 0, 0, 0},
+		{112, 32, 128, 48},
+	};
 
-	rcRight[0] = {224, 48, 240, 64};
-	rcRight[1] = {240, 48, 256, 64};
-	rcRight[2] = {256, 48, 272, 64};
-	rcRight[3] = {272, 48, 288, 64};
-	rcRight[4] = {288, 48, 304, 64};
-	rcRight[5] = {224, 48, 240, 64};
-	rcRight[6] = {304, 48, 320, 64};
-	rcRight[7] = {224, 48, 240, 64};
-	rcRight[8] = {272, 48, 288, 64};
-	rcRight[9] = {0, 0, 0, 0};
-	rcRight[10] = {112, 32, 128, 48};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -264,10 +266,10 @@
 		case 7:
 			npc->ani_no = 2;
 
-			if (npc->direct)
-				npc->xm = 0x200;
-			else
+			if (npc->direct == 0)
 				npc->xm = -0x200;
+			else
+				npc->xm = 0x200;
 
 			if (npc->act_wait++ && npc->flag & 8)
 				npc->act_no = 5;
@@ -419,12 +421,12 @@
 //Kazuma at computer
 void ActNpc062(NPCHAR *npc)
 {
-	RECT rcLeft[3];
+	RECT rcLeft[3] = {
+		{272, 192, 288, 216},
+		{288, 192, 304, 216},
+		{304, 192, 320, 216},
+	};
 
-	rcLeft[0] = {272, 192, 288, 216};
-	rcLeft[1] = {288, 192, 304, 216};
-	rcLeft[2] = {304, 192, 320, 216};
-
 	switch ( npc->act_no )
 	{
 		case 0:
@@ -487,23 +489,24 @@
 //Toroko with stick
 void ActNpc063(NPCHAR *npc)
 {
-	RECT rcLeft[8];
-	RECT rcRight[6];
+	RECT rcLeft[8] = {
+		{64, 64, 80, 80},
+		{80, 64, 96, 80},
+		{64, 64, 80, 80},
+		{96, 64, 112, 80},
+		{112, 64, 128, 80},
+		{128, 64, 144, 80},
+	};
 
-	rcLeft[0] = {64, 64, 80, 80};
-	rcLeft[1] = {80, 64, 96, 80};
-	rcLeft[2] = {64, 64, 80, 80};
-	rcLeft[3] = {96, 64, 112, 80};
-	rcLeft[4] = {112, 64, 128, 80};
-	rcLeft[5] = {128, 64, 144, 80};
+	RECT rcRight[6] = {
+		{64, 80, 80, 96},
+		{80, 80, 96, 96},
+		{64, 80, 80, 96},
+		{96, 80, 112, 96},
+		{112, 80, 128, 96},
+		{128, 80, 144, 96},
+	};
 
-	rcRight[0] = {64, 80, 80, 96};
-	rcRight[1] = {80, 80, 96, 96};
-	rcRight[2] = {64, 80, 80, 96};
-	rcRight[3] = {96, 80, 112, 96};
-	rcRight[4] = {112, 80, 128, 96};
-	rcRight[5] = {128, 80, 144, 96};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -623,17 +626,18 @@
 //First Cave Critter
 void ActNpc064(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{0, 0, 16, 16},
+		{16, 0, 32, 16},
+		{32, 0, 48, 16},
+	};
 
-	rcLeft[0] = {0, 0, 16, 16};
-	rcLeft[1] = {16, 0, 32, 16};
-	rcLeft[2] = {32, 0, 48, 16};
+	RECT rcRight[3] = {
+		{0, 16, 16, 32},
+		{16, 16, 32, 32},
+		{32, 16, 48, 32},
+	};
 
-	rcRight[0] = {0, 16, 16, 32};
-	rcRight[1] = {16, 16, 32, 32};
-	rcRight[2] = {32, 16, 48, 32};
-
 	switch (npc->act_no)
 	{
 		case 0: //Init
@@ -771,19 +775,20 @@
 	npc->x += npc->xm;
 	npc->y += npc->ym;
 
-	RECT rect_left[4];
-	RECT rect_right[4];
+	RECT rect_left[4] = {
+		{32, 32, 48, 48},
+		{48, 32, 64, 48},
+		{64, 32, 80, 48},
+		{80, 32, 96, 48},
+	};
 
-	rect_left[0] = {32, 32, 48, 48};
-	rect_left[1] = {48, 32, 64, 48};
-	rect_left[2] = {64, 32, 80, 48};
-	rect_left[3] = {80, 32, 96, 48};
+	RECT rect_right[4] = {
+		{32, 48, 48, 64},
+		{48, 48, 64, 64},
+		{64, 48, 80, 64},
+		{80, 48, 96, 64},
+	};
 
-	rect_right[0] = {32, 48, 48, 64};
-	rect_right[1] = {48, 48, 64, 64};
-	rect_right[2] = {64, 48, 80, 64};
-	rect_right[3] = {80, 48, 96, 64};
-
 	if (++npc->ani_wait > 1)
 	{
 		npc->ani_wait = 0;
@@ -802,13 +807,13 @@
 //Misery bubble
 void ActNpc066(NPCHAR *npc)
 {
-	RECT rect[4];
+	RECT rect[4] = {
+		{32, 192, 56, 216},
+		{56, 192, 80, 216},
+		{32, 216, 56, 240},
+		{56, 216, 80, 240},
+	};
 
-	rect[0] = {32, 192, 56, 216};
-	rect[1] = {56, 192, 80, 216};
-	rect[2] = {32, 216, 56, 240};
-	rect[3] = {56, 216, 80, 240};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -996,27 +1001,28 @@
 	npc->x += npc->xm;
 	npc->y += npc->ym;
 
-	RECT rcLeft[8];
-	RECT rcRight[8];
+	RECT rcLeft[8] = {
+		{80, 0, 96, 16},
+		{96, 0, 112, 16},
+		{112, 0, 128, 16},
+		{128, 0, 144, 16},
+		{144, 0, 160, 16},
+		{160, 0, 176, 16},
+		{176, 0, 192, 16},
+		{144, 0, 160, 16},
+	};
 
-	rcLeft[0] = {80, 0, 96, 16};
-	rcLeft[1] = {96, 0, 112, 16};
-	rcLeft[2] = {112, 0, 128, 16};
-	rcLeft[3] = {128, 0, 144, 16};
-	rcLeft[4] = {144, 0, 160, 16};
-	rcLeft[5] = {160, 0, 176, 16};
-	rcLeft[6] = {176, 0, 192, 16};
-	rcLeft[7] = {144, 0, 160, 16};
+	RECT rcRight[8] = {
+		{80, 16, 96, 32},
+		{96, 16, 112, 32},
+		{112, 16, 128, 32},
+		{128, 16, 144, 32},
+		{144, 16, 160, 32},
+		{160, 16, 176, 32},
+		{176, 16, 192, 32},
+		{144, 16, 160, 32},
+	};
 
-	rcRight[0] = {80, 16, 96, 32};
-	rcRight[1] = {96, 16, 112, 32};
-	rcRight[2] = {112, 16, 128, 32};
-	rcRight[3] = {128, 16, 144, 32};
-	rcRight[4] = {144, 16, 160, 32};
-	rcRight[5] = {160, 16, 176, 32};
-	rcRight[6] = {176, 16, 192, 32};
-	rcRight[7] = {144, 16, 160, 32};
-
 	if (npc->act_no == 11)
 	{
 		if (npc->ani_wait)
@@ -1239,29 +1245,30 @@
 	npc->x += npc->xm;
 	npc->y += npc->ym;
 
-	RECT rect_left[9];
-	RECT rect_right[9];
+	RECT rect_left[9] = {
+		{0, 0, 40, 24},
+		{0, 48, 40, 72},
+		{0, 0, 40, 24},
+		{40, 48, 80, 72},
+		{0, 0, 40, 24},
+		{80, 48, 120, 72},
+		{120, 48, 160, 72},
+		{120, 0, 160, 24},
+		{80, 0, 120, 24},
+	};
 
-	rect_left[0] = {0, 0, 40, 24};
-	rect_left[1] = {0, 48, 40, 72};
-	rect_left[2] = {0, 0, 40, 24};
-	rect_left[3] = {40, 48, 80, 72};
-	rect_left[4] = {0, 0, 40, 24};
-	rect_left[5] = {80, 48, 120, 72};
-	rect_left[6] = {120, 48, 160, 72};
-	rect_left[7] = {120, 0, 160, 24};
-	rect_left[8] = {80, 0, 120, 24};
+	RECT rect_right[9] = {
+		{0, 24, 40, 48},
+		{0, 72, 40, 96},
+		{0, 24, 40, 48},
+		{40, 72, 80, 96},
+		{0, 24, 40, 48},
+		{80, 72, 120, 96},
+		{120, 72, 160, 96},
+		{120, 24, 160, 48},
+		{80, 24, 120, 48},
+	};
 
-	rect_right[0] = {0, 24, 40, 48};
-	rect_right[1] = {0, 72, 40, 96};
-	rect_right[2] = {0, 24, 40, 48};
-	rect_right[3] = {40, 72, 80, 96};
-	rect_right[4] = {0, 24, 40, 48};
-	rect_right[5] = {80, 72, 120, 96};
-	rect_right[6] = {120, 72, 160, 96};
-	rect_right[7] = {120, 24, 160, 48};
-	rect_right[8] = {80, 24, 120, 48};
-
 	if (npc->direct == 0)
 		npc->rect = rect_left[npc->ani_no];
 	else
@@ -1271,23 +1278,24 @@
 //Sparkle
 void ActNpc069(NPCHAR *npc)
 {
-	RECT rcLeft[6];
-	RECT rcRight[6];
+	RECT rcLeft[6] = {
+		{48, 0, 64, 16},
+		{64, 0, 80, 16},
+		{80, 0, 96, 16},
+		{96, 0, 112, 16},
+		{48, 0, 64, 16},
+		{112, 0, 128, 16},
+	};
 
-	rcLeft[0] = {48, 0, 64, 16};
-	rcLeft[1] = {64, 0, 80, 16};
-	rcLeft[2] = {80, 0, 96, 16};
-	rcLeft[3] = {96, 0, 112, 16};
-	rcLeft[4] = {48, 0, 64, 16};
-	rcLeft[5] = {112, 0, 128, 16};
+	RECT rcRight[6] = {
+		{48, 16, 64, 32},
+		{64, 16, 80, 32},
+		{80, 16, 96, 32},
+		{96, 16, 112, 32},
+		{48, 16, 64, 32},
+		{112, 16, 128, 32},
+	};
 
-	rcRight[0] = {48, 16, 64, 32};
-	rcRight[1] = {64, 16, 80, 32};
-	rcRight[2] = {80, 16, 96, 32};
-	rcRight[3] = {96, 16, 112, 32};
-	rcRight[4] = {48, 16, 64, 32};
-	rcRight[5] = {112, 16, 128, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1407,13 +1415,13 @@
 //Sparkle
 void ActNpc070(NPCHAR *npc)
 {
-	RECT rect[4];
+	RECT rect[4] = {
+		{96, 48, 112, 64},
+		{112, 48, 128, 64},
+		{128, 48, 144, 64},
+		{144, 48, 160, 64},
+	};
 
-	rect[0] = {96, 48, 112, 64};
-	rect[1] = {112, 48, 128, 64};
-	rect[2] = {128, 48, 144, 64};
-	rect[3] = {144, 48, 160, 64};
-
 	if (++npc->ani_wait > 3)
 	{
 		npc->ani_wait = 0;
@@ -1454,35 +1462,18 @@
 	npc->x += npc->xm;
 	npc->y += npc->ym;
 
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{64, 32, 80, 48},
+		{80, 32, 96, 48},
+		{96, 32, 112, 48},
+	};
 
-	rcLeft[0].left = 64;
-	rcLeft[0].top = 32;
-	rcLeft[0].right = 80;
-	rcLeft[0].bottom = 48;
-	rcLeft[1].left = 80;
-	rcLeft[1].top = 32;
-	rcLeft[1].right = 96;
-	rcLeft[1].bottom = 48;
-	rcLeft[2].left = 96;
-	rcLeft[2].top = 32;
-	rcLeft[2].right = 112;
-	rcLeft[2].bottom = 48;
+	RECT rcRight[3] = {
+		{64, 48, 80, 64},
+		{80, 48, 96, 64},
+		{96, 48, 112, 64},
+	};
 
-	rcRight[0].left = 64;
-	rcRight[0].top = 48;
-	rcRight[0].right = 80;
-	rcRight[0].bottom = 64;
-	rcRight[1].left = 80;
-	rcRight[1].top = 48;
-	rcRight[1].right = 96;
-	rcRight[1].bottom = 64;
-	rcRight[2].left = 96;
-	rcRight[2].top = 48;
-	rcRight[2].right = 112;
-	rcRight[2].bottom = 64;
-
 	if (++npc->ani_wait > 4)
 	{
 		npc->ani_wait = 0;
@@ -1527,11 +1518,11 @@
 		}
 	}
 
-	RECT rect[2];
+	RECT rect[2] = {
+		{224, 48, 240, 64},
+		{240, 48, 256, 64},
+	};
 
-	rect[0] = {224, 48, 240, 64};
-	rect[1] = {240, 48, 256, 64};
-
 	npc->rect = rect[npc->ani_no];
 }
 
@@ -1538,14 +1529,14 @@
 //Water droplet
 void ActNpc073(NPCHAR *npc)
 {
-	RECT rect[5];
+	RECT rect[5] = {
+		{72, 16, 74, 18},
+		{74, 16, 76, 18},
+		{76, 16, 78, 18},
+		{78, 16, 80, 18},
+		{80, 16, 82, 18},
+	};
 
-	rect[0] = {72, 16, 74, 18};
-	rect[1] = {74, 16, 76, 18};
-	rect[2] = {76, 16, 78, 18};
-	rect[3] = {78, 16, 80, 18};
-	rect[4] = {80, 16, 82, 18};
-
 	npc->ym += 0x20;
 	npc->ani_no = Random(0, 4);
 
@@ -1582,23 +1573,24 @@
 // Jack
 void ActNpc074(NPCHAR *npc)
 {
-	RECT rcLeft[6];
-	RECT rcRight[6];
+	RECT rcLeft[6] = {
+		{64, 0, 80, 16},
+		{80, 0, 96, 16},
+		{96, 0, 112, 16},
+		{64, 0, 80, 16},
+		{112, 0, 128, 16},
+		{64, 0, 80, 16},
+	};
 
-	rcLeft[0] = {64, 0, 80, 16};
-	rcLeft[1] = {80, 0, 96, 16};
-	rcLeft[2] = {96, 0, 112, 16};
-	rcLeft[3] = {64, 0, 80, 16};
-	rcLeft[4] = {112, 0, 128, 16};
-	rcLeft[5] = {64, 0, 80, 16};
+	RECT rcRight[6] = {
+		{64, 16, 80, 32},
+		{80, 16, 96, 32},
+		{96, 16, 112, 32},
+		{64, 16, 80, 32},
+		{112, 16, 128, 32},
+		{64, 16, 80, 32},
+	};
 
-	rcRight[0] = {64, 16, 80, 32};
-	rcRight[1] = {80, 16, 96, 32};
-	rcRight[2] = {96, 16, 112, 32};
-	rcRight[3] = {64, 16, 80, 32};
-	rcRight[4] = {112, 16, 128, 32};
-	rcRight[5] = {64, 16, 80, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1671,17 +1663,11 @@
 // Kanpachi (fishing)
 void ActNpc075(NPCHAR *npc)
 {
-	RECT rcLeft[2];
+	RECT rcLeft[2] = {
+		{272, 32, 296, 56},
+		{296, 32, 320, 56},
+	};
 
-	rcLeft[0].left = 272;
-	rcLeft[0].top = 32;
-	rcLeft[0].right = 296;
-	rcLeft[0].bottom = 56;
-	rcLeft[1].left = 296;
-	rcLeft[1].top = 32;
-	rcLeft[1].right = 320;
-	rcLeft[1].bottom = 56;
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1704,18 +1690,21 @@
 //Flowers
 void ActNpc076(NPCHAR *npc)
 {
-	npc->rect = {16 * npc->code_event, 0, npc->rect.left + 16, 16};
+	npc->rect.left = 16 * npc->code_event;
+	npc->rect.top = 0;
+	npc->rect.right = npc->rect.left + 16;
+	npc->rect.bottom = 16;
 }
 
 //Yamashita
 void ActNpc077(NPCHAR *npc)
 {
-	RECT rc[3];
+	RECT rc[3] = {
+		{0, 16, 48, 48},
+		{48, 16, 96, 48},
+		{96, 16, 144, 48},
+	};
 
-	rc[0] = {0, 16, 48, 48};
-	rc[1] = {48, 16, 96, 48};
-	rc[2] = {96, 16, 144, 48};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1752,11 +1741,11 @@
 // Pot
 void ActNpc078(NPCHAR *npc)
 {
-	RECT rc[2];
+	RECT rc[2] = {
+		{160, 48, 176, 64},
+		{176, 48, 192, 64},
+	};
 
-	rc[0] = {160, 48, 176, 64};
-	rc[1] = {176, 48, 192, 64};
-
 	if (npc->direct == 0)
 		npc->rect = rc[0];
 	else
@@ -1766,16 +1755,17 @@
 // Mahin the sex god
 void ActNpc079(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{0, 0, 16, 16},
+		{16, 0, 32, 16},
+		{32, 0, 48, 16},
+	};
 
-	rcLeft[0] = {0, 0, 16, 16};
-	rcLeft[1] = {16, 0, 32, 16};
-	rcLeft[2] = {32, 0, 48, 16};
-
-	rcRight[0] = {0, 16, 16, 32};
-	rcRight[1] = {16, 16, 32, 32};
-	rcRight[2] = {32, 16, 48, 32};
+	RECT rcRight[3] = {
+		{0, 16, 16, 32},
+		{16, 16, 32, 32},
+		{32, 16, 48, 32},
+	};
 
 	switch (npc->act_no)
 	{
--- a/src/NpcAct080.cpp
+++ b/src/NpcAct080.cpp
@@ -16,25 +16,26 @@
 //Gravekeeper
 void ActNpc080(NPCHAR *npc)
 {
-	RECT rcLeft[7];
-	RECT rcRight[7];
+	RECT rcLeft[7] = {
+		{0, 64, 24, 88},
+		{24, 64, 48, 88},
+		{0, 64, 24, 88},
+		{48, 64, 72, 88},
+		{72, 64, 96, 88},
+		{96, 64, 120, 88},
+		{120, 64, 144, 88},
+	};
 
-	rcLeft[0] = {0, 64, 24, 88};
-	rcLeft[1] = {24, 64, 48, 88};
-	rcLeft[2] = {0, 64, 24, 88};
-	rcLeft[3] = {48, 64, 72, 88};
-	rcLeft[4] = {72, 64, 96, 88};
-	rcLeft[5] = {96, 64, 120, 88};
-	rcLeft[6] = {120, 64, 144, 88};
+	RECT rcRight[7] = {
+		{0, 88, 24, 112},
+		{24, 88, 48, 112},
+		{0, 88, 24, 112},
+		{48, 88, 72, 112},
+		{72, 88, 96, 112},
+		{96, 88, 120, 112},
+		{120, 88, 144, 112},
+	};
 
-	rcRight[0] = {0, 88, 24, 112};
-	rcRight[1] = {24, 88, 48, 112};
-	rcRight[2] = {0, 88, 24, 112};
-	rcRight[3] = {48, 88, 72, 112};
-	rcRight[4] = {72, 88, 96, 112};
-	rcRight[5] = {96, 88, 120, 112};
-	rcRight[6] = {120, 88, 144, 112};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -174,23 +175,24 @@
 //Giant pignon
 void ActNpc081(NPCHAR *npc)
 {
-	RECT rcLeft[6];
-	RECT rcRight[6];
+	RECT rcLeft[6] = {
+		{144, 64, 168, 88},
+		{168, 64, 192, 88},
+		{192, 64, 216, 88},
+		{216, 64, 240, 88},
+		{144, 64, 168, 88},
+		{240, 64, 264, 88},
+	};
 
-	rcLeft[0] = {144, 64, 168, 88};
-	rcLeft[1] = {168, 64, 192, 88};
-	rcLeft[2] = {192, 64, 216, 88};
-	rcLeft[3] = {216, 64, 240, 88};
-	rcLeft[4] = {144, 64, 168, 88};
-	rcLeft[5] = {240, 64, 264, 88};
+	RECT rcRight[6] = {
+		{144, 88, 168, 112},
+		{168, 88, 192, 112},
+		{192, 88, 216, 112},
+		{216, 88, 240, 112},
+		{144, 88, 168, 112},
+		{240, 88, 264, 112},
+	};
 
-	rcRight[0] = {144, 88, 168, 112};
-	rcRight[1] = {168, 88, 192, 112};
-	rcRight[2] = {192, 88, 216, 112};
-	rcRight[3] = {216, 88, 240, 112};
-	rcRight[4] = {144, 88, 168, 112};
-	rcRight[5] = {240, 88, 264, 112};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -454,29 +456,30 @@
 	npc->x += npc->xm;
 	npc->y += npc->ym;
 
-	RECT rcLeft[9];
-	RECT rcRight[9];
+	RECT rcLeft[9] = {
+		{80, 0, 96, 16},
+		{96, 0, 112, 16},
+		{112, 0, 128, 16},
+		{128, 0, 144, 16},
+		{144, 0, 160, 16},
+		{160, 0, 176, 16},
+		{176, 0, 192, 16},
+		{144, 0, 160, 16},
+		{208, 64, 224, 80},
+	};
 
-	rcLeft[0] = {80, 0, 96, 16};
-	rcLeft[1] = {96, 0, 112, 16};
-	rcLeft[2] = {112, 0, 128, 16};
-	rcLeft[3] = {128, 0, 144, 16};
-	rcLeft[4] = {144, 0, 160, 16};
-	rcLeft[5] = {160, 0, 176, 16};
-	rcLeft[6] = {176, 0, 192, 16};
-	rcLeft[7] = {144, 0, 160, 16};
-	rcLeft[8] = {208, 64, 224, 80};
+	RECT rcRight[9] = {
+		{80, 16, 96, 32},
+		{96, 16, 112, 32},
+		{112, 16, 128, 32},
+		{128, 16, 144, 32},
+		{144, 16, 160, 32},
+		{160, 16, 176, 32},
+		{176, 16, 192, 32},
+		{144, 16, 160, 32},
+		{208, 80, 224, 96},
+	};
 
-	rcRight[0] = {80, 16, 96, 32};
-	rcRight[1] = {96, 16, 112, 32};
-	rcRight[2] = {112, 16, 128, 32};
-	rcRight[3] = {128, 16, 144, 32};
-	rcRight[4] = {144, 16, 160, 32};
-	rcRight[5] = {160, 16, 176, 32};
-	rcRight[6] = {176, 16, 192, 32};
-	rcRight[7] = {144, 16, 160, 32};
-	rcRight[8] = {208, 80, 224, 96};
-
 	if (npc->act_no == 11)
 	{
 		if (npc->ani_wait)
@@ -518,27 +521,28 @@
 //Igor (cutscene)
 void ActNpc083(NPCHAR *npc)
 {
-	RECT rcLeft[8];
-	RECT rcRight[8];
+	RECT rcLeft[8] = {
+		{0, 0, 40, 40},
+		{40, 0, 80, 40},
+		{80, 0, 120, 40},
+		{0, 0, 40, 40},
+		{120, 0, 160, 40},
+		{0, 0, 40, 40},
+		{160, 0, 200, 40},
+		{200, 0, 240, 40},
+	};
 
-	rcLeft[0] = {0, 0, 40, 40};
-	rcLeft[1] = {40, 0, 80, 40};
-	rcLeft[2] = {80, 0, 120, 40};
-	rcLeft[3] = {0, 0, 40, 40};
-	rcLeft[4] = {120, 0, 160, 40};
-	rcLeft[5] = {0, 0, 40, 40};
-	rcLeft[6] = {160, 0, 200, 40};
-	rcLeft[7] = {200, 0, 240, 40};
+	RECT rcRight[8] = {
+		{0, 40, 40, 80},
+		{40, 40, 80, 80},
+		{80, 40, 120, 80},
+		{0, 40, 40, 80},
+		{120, 40, 160, 80},
+		{0, 40, 40, 80},
+		{160, 40, 200, 80},
+		{200, 40, 240, 80},
+	};
 
-	rcRight[0] = {0, 40, 40, 80};
-	rcRight[1] = {40, 40, 80, 80};
-	rcRight[2] = {80, 40, 120, 80};
-	rcRight[3] = {0, 40, 40, 80};
-	rcRight[4] = {120, 40, 160, 80};
-	rcRight[5] = {0, 40, 40, 80};
-	rcRight[6] = {160, 40, 200, 80};
-	rcRight[7] = {200, 40, 240, 80};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -637,13 +641,13 @@
 	npc->y += npc->ym;
 	npc->x += npc->xm;
 
-	RECT rect_left[4];
+	RECT rect_left[4] = {
+		{48, 48, 64, 64},
+		{64, 48, 80, 64},
+		{48, 64, 64, 80},
+		{64, 64, 80, 80},
+	};
 
-	rect_left[0] = {48, 48, 64, 64};
-	rect_left[1] = {64, 48, 80, 64};
-	rect_left[2] = {48, 64, 64, 80};
-	rect_left[3] = {64, 64, 80, 80};
-
 	if (++npc->ani_wait > 2)
 	{
 		npc->ani_wait = 0;
@@ -665,17 +669,18 @@
 // Terminal
 void ActNpc085(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{256, 96, 272, 120},
+		{256, 96, 272, 120},
+		{272, 96, 288, 120},
+	};
 
-	rcLeft[0] = {256, 96, 272, 120};
-	rcLeft[1] = {256, 96, 272, 120};
-	rcLeft[2] = {272, 96, 288, 120};
+	RECT rcRight[3] = {
+		{256, 96, 272, 120},
+		{288, 96, 304, 120},
+		{304, 96, 320, 120},
+	};
 
-	rcRight[0] = {256, 96, 272, 120};
-	rcRight[1] = {288, 96, 304, 120};
-	rcRight[2] = {304, 96, 320, 120};
-
 	switch(npc->act_no)
 	{
 		case 0:
@@ -705,18 +710,18 @@
 // Missile
 void ActNpc086(NPCHAR *npc)
 {
-	RECT rect1[2];
-	RECT rect3[2];
-	RECT rcLast[1];
+	RECT rect1[2] = {
+		{0, 80, 16, 96},
+		{16, 80, 32, 96},
+	};
 
-	rect1[0] = {0, 80, 16, 96};
-	rect1[1] = {16, 80, 32, 96};
+	RECT rect3[2] = {
+		{0, 112, 16, 128},
+		{16, 112, 32, 128},
+	};
 
-	rect3[0] = {0, 112, 16, 128};
-	rect3[1] = {16, 112, 32, 128};
+	RECT rcLast = {16, 0, 32, 16};
 
-	rcLast[0] = {16, 0, 32, 16};
-
 	if (npc->direct == 0)
 	{
 		if (++npc->ani_wait > 2)
@@ -780,24 +785,24 @@
 		npc->rect.right = 0;
 
 	if (npc->count1 > 547)
-		npc->rect = rcLast[0];;
+		npc->rect = rcLast;
 }
 
 // Heart
 void ActNpc087(NPCHAR *npc)
 {
-	RECT rect2[5];
-	RECT rect6[2];
-	RECT rcLast[1];
+	RECT rect2[2] = {
+		{32, 80, 48, 96},
+		{48, 80, 64, 96},
+	};
 
-	rect2[0] = {32, 80, 48, 96};
-	rect2[1] = {48, 80, 64, 96};
+	RECT rect6[2] = {
+		{64, 80, 80, 96},
+		{80, 80, 96, 96},
+	};
 
-	rect6[0] = {64, 80, 80, 96};
-	rect6[1] = {80, 80, 96, 96};
+	RECT rcLast = {16, 0, 32, 16};
 
-	rcLast[0] = {16, 0, 32, 16};
-
 	if (npc->direct == 0)
 	{
 		if (++npc->ani_wait > 2)
@@ -861,41 +866,42 @@
 		npc->rect.right = 0;
 
 	if (npc->count1 > 547)
-		npc->rect = rcLast[0];
+		npc->rect = rcLast;
 }
 
 // Igor (boss)
 void ActNpc088(NPCHAR *npc)
 {
-	RECT rcLeft[12];
-	RECT rcRight[12];
+	RECT rcLeft[12] = {
+		{0, 0, 40, 40},
+		{40, 0, 80, 40},
+		{80, 0, 120, 40},
+		{0, 0, 40, 40},
+		{120, 0, 160, 40},
+		{0, 0, 40, 40},
+		{160, 0, 200, 40},
+		{200, 0, 240, 40},
+		{0, 80, 40, 120},
+		{40, 80, 80, 120},
+		{240, 0, 280, 40},
+		{280, 0, 320, 40},
+	};
 
-	rcLeft[0] = {0, 0, 40, 40};
-	rcLeft[1] = {40, 0, 80, 40};
-	rcLeft[2] = {80, 0, 120, 40};
-	rcLeft[3] = {0, 0, 40, 40};
-	rcLeft[4] = {120, 0, 160, 40};
-	rcLeft[5] = {0, 0, 40, 40};
-	rcLeft[6] = {160, 0, 200, 40};
-	rcLeft[7] = {200, 0, 240, 40};
-	rcLeft[8] = {0, 80, 40, 120};
-	rcLeft[9] = {40, 80, 80, 120};
-	rcLeft[10] = {240, 0, 280, 40};
-	rcLeft[11] = {280, 0, 320, 40};
+	RECT rcRight[12] = {
+		{0, 40, 40, 80},
+		{40, 40, 80, 80},
+		{80, 40, 120, 80},
+		{0, 40, 40, 80},
+		{120, 40, 160, 80},
+		{0, 40, 40, 80},
+		{160, 40, 200, 80},
+		{200, 40, 240, 80},
+		{120, 80, 160, 120},
+		{160, 80, 200, 120},
+		{240, 40, 280, 80},
+		{280, 40, 320, 80},
+	};
 
-	rcRight[0] = {0, 40, 40, 80};
-	rcRight[1] = {40, 40, 80, 80};
-	rcRight[2] = {80, 40, 120, 80};
-	rcRight[3] = {0, 40, 40, 80};
-	rcRight[4] = {120, 40, 160, 80};
-	rcRight[5] = {0, 40, 40, 80};
-	rcRight[6] = {160, 40, 200, 80};
-	rcRight[7] = {200, 40, 240, 80};
-	rcRight[8] = {120, 80, 160, 120};
-	rcRight[9] = {160, 80, 200, 120};
-	rcRight[10] = {240, 40, 280, 80};
-	rcRight[11] = {280, 40, 320, 80};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1112,19 +1118,20 @@
 // Igor (defeated)
 void ActNpc089(NPCHAR *npc)
 {
-	RECT rcLeft[4];
-	RECT rcRight[4];
+	RECT rcLeft[4] = {
+		{80, 80, 120, 120},
+		{240, 80, 264, 104},
+		{264, 80, 288, 104},
+		{288, 80, 312, 104},
+	};
 
-	rcLeft[0] = {80, 80, 120, 120};
-	rcLeft[1] = {240, 80, 264, 104};
-	rcLeft[2] = {264, 80, 288, 104};
-	rcLeft[3] = {288, 80, 312, 104};
+	RECT rcRight[4] = {
+		{200, 80, 240, 120},
+		{240, 104, 264, 128},
+		{264, 104, 288, 128},
+		{288, 104, 312, 128},
+	};
 
-	rcRight[0] = {200, 80, 240, 120};
-	rcRight[1] = {240, 104, 264, 128};
-	rcRight[2] = {264, 104, 288, 128};
-	rcRight[3] = {288, 104, 312, 128};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1222,20 +1229,16 @@
 // Unknown
 void ActNpc090(NPCHAR *npc)
 {
-	RECT rect[1];
+	RECT rect = {280, 80, 296, 104};
 
-	rect[0] = {280, 80, 296, 104};
-
-	npc->rect = rect[0];
+	npc->rect = rect;
 }
 
 // Cage
 void ActNpc091(NPCHAR *npc)
 {
-	RECT rect[1];
+	RECT rect = {96, 88, 128, 112};
 
-	rect[0] = {96, 88, 128, 112};
-
 	if (npc->act_no == 0)
 	{
 		++npc->act_no;
@@ -1242,18 +1245,18 @@
 		npc->y += 0x10 * 0x200;
 	}
 
-	npc->rect = rect[0];
+	npc->rect = rect;
 }
 
 // Sue at PC
 void ActNpc092(NPCHAR *npc)
 {
-	RECT rcLeft[3];
+	RECT rcLeft[3] = {
+		{272, 216, 288, 240},
+		{288, 216, 304, 240},
+		{304, 216, 320, 240},
+	};
 
-	rcLeft[0] = {272, 216, 288, 240};
-	rcLeft[1] = {288, 216, 304, 240};
-	rcLeft[2] = {304, 216, 320, 240};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1315,25 +1318,26 @@
 //Chaco
 void ActNpc093(NPCHAR *npc)
 {
-	RECT rcLeft[7];
-	RECT rcRight[7];
+	RECT rcLeft[7] = {
+		{128, 0, 144, 16},
+		{144, 0, 160, 16},
+		{160, 0, 176, 16},
+		{128, 0, 144, 16},
+		{176, 0, 192, 16},
+		{128, 0, 144, 16},
+		{32, 32, 48, 48},
+	};
 
-	rcLeft[0] = {128, 0, 144, 16};
-	rcLeft[1] = {144, 0, 160, 16};
-	rcLeft[2] = {160, 0, 176, 16};
-	rcLeft[3] = {128, 0, 144, 16};
-	rcLeft[4] = {176, 0, 192, 16};
-	rcLeft[5] = {128, 0, 144, 16};
-	rcLeft[6] = {32, 32, 48, 48};
+	RECT rcRight[7] = {
+		{128, 16, 144, 32},
+		{144, 16, 160, 32},
+		{160, 16, 176, 32},
+		{128, 16, 144, 32},
+		{176, 16, 192, 32},
+		{128, 16, 144, 32},
+		{32, 32, 48, 48},
+	};
 
-	rcRight[0] = {128, 16, 144, 32};
-	rcRight[1] = {144, 16, 160, 32};
-	rcRight[2] = {160, 16, 176, 32};
-	rcRight[3] = {128, 16, 144, 32};
-	rcRight[4] = {176, 16, 192, 32};
-	rcRight[5] = {128, 16, 144, 32};
-	rcRight[6] = {32, 32, 48, 48};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1411,14 +1415,14 @@
 //Kulala
 void ActNpc094(NPCHAR *npc)
 {
-	RECT rect[5];
+	RECT rect[5] = {
+		{272, 0, 320, 24},
+		{272, 24, 320, 48},
+		{272, 48, 320, 72},
+		{272, 72, 320, 96},
+		{272, 96, 320, 120},
+	};
 
-	rect[0] = {272, 0, 320, 24};
-	rect[1] = {272, 24, 320, 48};
-	rect[2] = {272, 48, 320, 72};
-	rect[3] = {272, 72, 320, 96};
-	rect[4] = {272, 96, 320, 120};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1560,19 +1564,20 @@
 //Jelly
 void ActNpc095(NPCHAR *npc)
 {
-	RECT rcLeft[4];
-	RECT rcRight[4];
+	RECT rcLeft[4] = {
+		{208, 64, 224, 80},
+		{224, 64, 240, 80},
+		{240, 64, 256, 80},
+		{256, 64, 272, 80},
+	};
 
-	rcLeft[0] = {208, 64, 224, 80};
-	rcLeft[1] = {224, 64, 240, 80};
-	rcLeft[2] = {240, 64, 256, 80};
-	rcLeft[3] = {256, 64, 272, 80};
+	RECT rcRight[4] = {
+		{208, 80, 224, 96},
+		{224, 80, 240, 96},
+		{240, 80, 256, 96},
+		{256, 80, 272, 96},
+	};
 
-	rcRight[0] = {208, 80, 224, 96};
-	rcRight[1] = {224, 80, 240, 96};
-	rcRight[2] = {240, 80, 256, 96};
-	rcRight[3] = {256, 80, 272, 96};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1692,12 +1697,12 @@
 //Fan (left)
 void ActNpc096(NPCHAR *npc)
 {
-	RECT rc[3];
+	RECT rc[3] = {
+		{272, 120, 288, 136},
+		{288, 120, 304, 136},
+		{304, 120, 320, 136},
+	};
 
-	rc[0] = {272, 120, 288, 136};
-	rc[1] = {288, 120, 304, 136};
-	rc[2] = {304, 120, 320, 136};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1742,12 +1747,12 @@
 //Fan (up)
 void ActNpc097(NPCHAR *npc)
 {
-	RECT rc[3];
+	RECT rc[3] = {
+		{272, 136, 288, 152},
+		{288, 136, 304, 152},
+		{304, 136, 320, 152},
+	};
 
-	rc[0] = {272, 136, 288, 152};
-	rc[1] = {288, 136, 304, 152};
-	rc[2] = {304, 136, 320, 152};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1789,12 +1794,12 @@
 //Fan (right)
 void ActNpc098(NPCHAR *npc)
 {
-	RECT rc[3];
+	RECT rc[3] = {
+		{272, 152, 288, 168},
+		{288, 152, 304, 168},
+		{304, 152, 320, 168},
+	};
 
-	rc[0] = {272, 152, 288, 168};
-	rc[1] = {288, 152, 304, 168};
-	rc[2] = {304, 152, 320, 168};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1839,11 +1844,11 @@
 //Fan (down)
 void ActNpc099(NPCHAR *npc)
 {
-	RECT rc[3];
-
-	rc[0] = {272, 168, 288, 184};
-	rc[1] = {288, 168, 304, 184};
-	rc[2] = {304, 168, 320, 184};
+	RECT rc[3] = {
+		{272, 168, 288, 184},
+		{288, 168, 304, 184},
+		{304, 168, 320, 184},
+	};
 
 	switch (npc->act_no)
 	{
--- a/src/NpcAct100.cpp
+++ b/src/NpcAct100.cpp
@@ -15,11 +15,11 @@
 //Grate
 void ActNpc100(NPCHAR *npc)
 {
-	RECT rc[2];
+	RECT rc[2] = {
+		{272, 48, 288, 64},
+		{272, 48, 288, 64},
+	};
 
-	rc[0] = {272, 48, 288, 64};
-	rc[1] = {272, 48, 288, 64};
-
 	if (npc->act_no == 0)
 	{
 		npc->y += 0x2000;
@@ -35,12 +35,12 @@
 //Malco computer screen
 void ActNpc101(NPCHAR *npc)
 {
-	RECT rect[3];
+	RECT rect[3] = {
+		{240, 136, 256, 152},
+		{240, 136, 256, 152},
+		{256, 136, 272, 152},
+	};
 
-	rect[0] = {240, 136, 256, 152};
-	rect[1] = {240, 136, 256, 152};
-	rect[2] = {256, 136, 272, 152};
-
 	if (++npc->ani_wait > 3)
 	{
 		npc->ani_wait = 0;
@@ -56,13 +56,13 @@
 //Malco computer wave
 void ActNpc102(NPCHAR *npc)
 {
-	RECT rect[4];
+	RECT rect[4] = {
+		{208, 120, 224, 136},
+		{224, 120, 240, 136},
+		{240, 120, 256, 136},
+		{256, 120, 272, 136},
+	};
 
-	rect[0] = {208, 120, 224, 136};
-	rect[1] = {224, 120, 240, 136};
-	rect[2] = {240, 120, 256, 136};
-	rect[3] = {256, 120, 272, 136};
-
 	if (npc->act_no == 0)
 	{
 		npc->act_no = 1;
@@ -84,17 +84,18 @@
 //Mannan projectile
 void ActNpc103(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{192, 96, 208, 120},
+		{208, 96, 224, 120},
+		{224, 96, 240, 120},
+	};
 
-	rcLeft[0] = {192, 96, 208, 120};
-	rcLeft[1] = {208, 96, 224, 120};
-	rcLeft[2] = {224, 96, 240, 120};
+	RECT rcRight[3] = {
+		{192, 120, 208, 144},
+		{208, 120, 224, 144},
+		{224, 120, 240, 144},
+	};
 
-	rcRight[0] = {192, 120, 208, 144};
-	rcRight[1] = {208, 120, 224, 144};
-	rcRight[2] = {224, 120, 240, 144};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -135,17 +136,18 @@
 //Frog
 void ActNpc104(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{0, 112, 32, 144},
+		{32, 112, 64, 144},
+		{64, 112, 96, 144},
+	};
 
-	rcLeft[0] = {0, 112, 32, 144};
-	rcLeft[1] = {32, 112, 64, 144};
-	rcLeft[2] = {64, 112, 96, 144};
+	RECT rcRight[3] = {
+		{0, 144, 32, 176},
+		{32, 144, 64, 176},
+		{64, 144, 96, 176},
+	};
 
-	rcRight[0] = {0, 144, 32, 176};
-	rcRight[1] = {32, 144, 64, 176};
-	rcRight[2] = {64, 144, 96, 176};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -156,7 +158,7 @@
 
 			if (npc->direct == 4)
 			{
-				if (Random(0, 1) != 0)
+				if (Random(0, 1))
 					npc->direct = 0;
 				else
 					npc->direct = 2;
@@ -293,11 +295,11 @@
 //'HEY!' speech bubble (low)
 void ActNpc105(NPCHAR *npc)
 {
-	RECT rect[2];
+	RECT rect[2] = {
+		{128, 32, 144, 48},
+		{128, 32, 128, 32},
+	};
 
-	rect[0] = {128, 32, 144, 48};
-	rect[1] = {128, 32, 128, 32};
-
 	if (++npc->act_wait > 30)
 		npc->cond = 0;
 
@@ -465,19 +467,19 @@
 			break;
 	}
 
-	RECT rcPoweron[10];
+	RECT rcPoweron[10] = {
+		{144, 0, 160, 24},
+		{160, 0, 176, 24},
+		{176, 0, 192, 24},
+		{192, 0, 208, 24},
+		{208, 0, 224, 24},
+		{224, 0, 240, 24},
+		{176, 0, 192, 24},
+		{192, 0, 208, 24},
+		{208, 0, 224, 24},
+		{192, 0, 208, 24},
+	};
 
-	rcPoweron[0] = {144, 0, 160, 24};
-	rcPoweron[1] = {160, 0, 176, 24};
-	rcPoweron[2] = {176, 0, 192, 24};
-	rcPoweron[3] = {192, 0, 208, 24};
-	rcPoweron[4] = {208, 0, 224, 24};
-	rcPoweron[5] = {224, 0, 240, 24};
-	rcPoweron[6] = {176, 0, 192, 24};
-	rcPoweron[7] = {192, 0, 208, 24};
-	rcPoweron[8] = {208, 0, 224, 24};
-	rcPoweron[9] = {192, 0, 208, 24};
-
 	npc->rect = rcPoweron[npc->ani_no];
 }
 
@@ -493,12 +495,12 @@
 	npc->y += npc->ym;
 	npc->x += npc->xm;
 
-	RECT rect_left[3];
+	RECT rect_left[3] = {
+		{96, 48, 112, 64},
+		{112, 48, 128, 64},
+		{128, 48, 144, 64},
+	};
 
-	rect_left[0] = {96, 48, 112, 64};
-	rect_left[1] = {112, 48, 128, 64};
-	rect_left[2] = {128, 48, 144, 64};
-
 	if (++npc->ani_wait > 1)
 	{
 		npc->ani_wait = 0;
@@ -520,15 +522,16 @@
 //Malco (broken)
 void ActNpc109(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{240, 0, 256, 24},
+		{256, 0, 272, 24},
+	};
 
-	rcLeft[0] = {240, 0, 256, 24};
-	rcLeft[1] = {256, 0, 272, 24};
+	RECT rcRight[2] = {
+		{240, 24, 256, 48},
+		{256, 24, 272, 48},
+	};
 
-	rcRight[0] = {240, 24, 256, 48};
-	rcRight[1] = {256, 24, 272, 48};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -590,17 +593,18 @@
 //Puchi
 void ActNpc110(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{96, 128, 112, 144},
+		{112, 128, 128, 144},
+		{128, 128, 144, 144},
+	};
 
-	rcLeft[0] = {96, 128, 112, 144};
-	rcLeft[1] = {112, 128, 128, 144};
-	rcLeft[2] = {128, 128, 144, 144};
+	RECT rcRight[3] = {
+		{96, 144, 112, 160},
+		{112, 144, 128, 160},
+		{128, 144, 144, 160},
+	};
 
-	rcRight[0] = {96, 144, 112, 160};
-	rcRight[1] = {112, 144, 128, 160};
-	rcRight[2] = {128, 144, 144, 160};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -747,16 +751,17 @@
 //Quote (teleport out)
 void ActNpc111(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{0, 0, 16, 16},
+		{16, 0, 32, 16},
+	};
 
-	rcLeft[0] = {0, 0, 16, 16};
-	rcLeft[1] = {16, 0, 32, 16};
+	RECT rcRight[2] = {
+		{0, 16, 16, 32},
+		{16, 16, 32, 32},
+	};
 
-	rcRight[0] = {0, 16, 16, 32};
-	rcRight[1] = {16, 16, 32, 32};
-
-	switch ( npc->act_no )
+	switch (npc->act_no)
 	{
 		case 0:
 			npc->act_no = 1;
@@ -834,15 +839,16 @@
 //Quote (teleport in)
 void ActNpc112(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{0, 0, 16, 16},
+		{16, 0, 32, 16},
+	};
 
-	rcLeft[0] = {0, 0, 16, 16};
-	rcLeft[1] = {16, 0, 32, 16};
+	RECT rcRight[2] = {
+		{0, 16, 16, 32},
+		{16, 16, 32, 32},
+	};
 
-	rcRight[0] = {0, 16, 16, 32};
-	rcRight[1] = {16, 16, 32, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -909,25 +915,26 @@
 //Professor Booster
 void ActNpc113(NPCHAR *npc)
 {
-	RECT rcLeft[7];
-	RECT rcRight[7];
+	RECT rcLeft[7] = {
+		{224, 0, 240, 16},
+		{240, 0, 256, 16},
+		{256, 0, 272, 16},
+		{224, 0, 240, 16},
+		{272, 0, 288, 16},
+		{224, 0, 240, 16},
+		{288, 0, 304, 16},
+	};
 
-	rcLeft[0] = {224, 0, 240, 16};
-	rcLeft[1] = {240, 0, 256, 16};
-	rcLeft[2] = {256, 0, 272, 16};
-	rcLeft[3] = {224, 0, 240, 16};
-	rcLeft[4] = {272, 0, 288, 16};
-	rcLeft[5] = {224, 0, 240, 16};
-	rcLeft[6] = {288, 0, 304, 16};
+	RECT rcRight[7] = {
+		{224, 16, 240, 32},
+		{240, 16, 256, 32},
+		{256, 16, 272, 32},
+		{224, 16, 240, 32},
+		{272, 16, 288, 32},
+		{224, 16, 240, 32},
+		{288, 16, 304, 32},
+	};
 
-	rcRight[0] = {224, 16, 240, 32};
-	rcRight[1] = {240, 16, 256, 32};
-	rcRight[2] = {256, 16, 272, 32};
-	rcRight[3] = {224, 16, 240, 32};
-	rcRight[4] = {272, 16, 288, 32};
-	rcRight[5] = {224, 16, 240, 32};
-	rcRight[6] = {288, 16, 304, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1039,12 +1046,12 @@
 //Press
 void ActNpc114(NPCHAR *npc)
 {
-	RECT rcLeft[3];
+	RECT rcLeft[3] = {
+		{144, 112, 160, 136},
+		{160, 112, 176, 136},
+		{176, 112, 192, 136},
+	};
 
-	rcLeft[0] = {144, 112, 160, 136};
-	rcLeft[1] = {160, 112, 176, 136};
-	rcLeft[2] = {176, 112, 192, 136};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1111,23 +1118,24 @@
 //Ravil
 void ActNpc115(NPCHAR *npc)
 {
-	RECT rcLeft[6];
-	RECT rcRight[6];
+	RECT rcLeft[6] = {
+		{0, 120, 24, 144},
+		{24, 120, 48, 144},
+		{48, 120, 72, 144},
+		{72, 120, 96, 144},
+		{96, 120, 120, 144},
+		{120, 120, 144, 144},
+	};
 
-	rcLeft[0] = {0, 120, 24, 144};
-	rcLeft[1] = {24, 120, 48, 144};
-	rcLeft[2] = {48, 120, 72, 144};
-	rcLeft[3] = {72, 120, 96, 144};
-	rcLeft[4] = {96, 120, 120, 144};
-	rcLeft[5] = {120, 120, 144, 144};
+	RECT rcRight[6] = {
+		{0, 144, 24, 168},
+		{24, 144, 48, 168},
+		{48, 144, 72, 168},
+		{72, 144, 96, 168},
+		{96, 144, 120, 168},
+		{120, 144, 144, 168},
+	};
 
-	rcRight[0] = {0, 144, 24, 168};
-	rcRight[1] = {24, 144, 48, 168};
-	rcRight[2] = {48, 144, 72, 168};
-	rcRight[3] = {72, 144, 96, 168};
-	rcRight[4] = {96, 144, 120, 168};
-	rcRight[5] = {120, 144, 144, 168};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1267,41 +1275,40 @@
 //Red petals
 void ActNpc116(NPCHAR *npc)
 {
-	RECT rc[1];
+	RECT rc = {272, 184, 320, 200};
 
-	rc[0] = {272, 184, 320, 200};
-
-	npc->rect = rc[0];
+	npc->rect = rc;
 }
 
 //Curly
 void ActNpc117(NPCHAR *npc)
 {
-	RECT rcLeft[10];
-	RECT rcRight[10];
+	RECT rcLeft[10] = {
+		{0, 96, 16, 112},
+		{16, 96, 32, 112},
+		{0, 96, 16, 112},
+		{32, 96, 48, 112},
+		{0, 96, 16, 112},
+		{176, 96, 192, 112},
+		{112, 96, 128, 112},
+		{160, 96, 176, 112},
+		{144, 96, 160, 112},
+		{48, 96, 64, 112},
+	};
 
-	rcLeft[0] = {0, 96, 16, 112};
-	rcLeft[1] = {16, 96, 32, 112};
-	rcLeft[2] = {0, 96, 16, 112};
-	rcLeft[3] = {32, 96, 48, 112};
-	rcLeft[4] = {0, 96, 16, 112};
-	rcLeft[5] = {176, 96, 192, 112};
-	rcLeft[6] = {112, 96, 128, 112};
-	rcLeft[7] = {160, 96, 176, 112};
-	rcLeft[8] = {144, 96, 160, 112};
-	rcLeft[9] = {48, 96, 64, 112};
+	RECT rcRight[10] = {
+		{0, 112, 16, 128},
+		{16, 112, 32, 128},
+		{0, 112, 16, 128},
+		{32, 112, 48, 128},
+		{0, 112, 16, 128},
+		{176, 112, 192, 128},
+		{112, 112, 128, 128},
+		{160, 112, 176, 128},
+		{144, 112, 160, 128},
+		{48, 112, 64, 128},
+	};
 
-	rcRight[0] = {0, 112, 16, 128};
-	rcRight[1] = {16, 112, 32, 128};
-	rcRight[2] = {0, 112, 16, 128};
-	rcRight[3] = {32, 112, 48, 128};
-	rcRight[4] = {0, 112, 16, 128};
-	rcRight[5] = {176, 112, 192, 128};
-	rcRight[6] = {112, 112, 128, 128};
-	rcRight[7] = {160, 112, 176, 128};
-	rcRight[8] = {144, 112, 160, 128};
-	rcRight[9] = {48, 112, 64, 128};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1400,7 +1407,7 @@
 		case 30:
 			npc->act_no = 31;
 			npc->act_wait = 0;
-			npc->ym = -0x400u;
+			npc->ym = -0x400;
 			// Fallthrough
 		case 31:
 			npc->ani_no = 7;
@@ -1408,7 +1415,7 @@
 			if (npc->direct == 0)
 				npc->xm = 0x200;
 			else
-				npc->xm = -0x200u;
+				npc->xm = -0x200;
 
 			npc->ym += 0x40;
 
@@ -1462,29 +1469,30 @@
 //Curly (boss)
 void ActNpc118(NPCHAR *npc)
 {
-	RECT rcLeft[9];
-	RECT rcRight[9];
+	RECT rcLeft[9] = {
+		{0, 32, 32, 56},
+		{32, 32, 64, 56},
+		{64, 32, 96, 56},
+		{96, 32, 128, 56},
+		{0, 32, 32, 56},
+		{128, 32, 160, 56},
+		{0, 32, 32, 56},
+		{0, 32, 32, 56},
+		{160, 32, 192, 56},
+	};
 
-	rcLeft[0] = {0, 32, 32, 56};
-	rcLeft[1] = {32, 32, 64, 56};
-	rcLeft[2] = {64, 32, 96, 56};
-	rcLeft[3] = {96, 32, 128, 56};
-	rcLeft[4] = {0, 32, 32, 56};
-	rcLeft[5] = {128, 32, 160, 56};
-	rcLeft[6] = {0, 32, 32, 56};
-	rcLeft[7] = {0, 32, 32, 56};
-	rcLeft[8] = {160, 32, 192, 56};
+	RECT rcRight[9] = {
+		{0, 56, 32, 80},
+		{32, 56, 64, 80},
+		{64, 56, 96, 80},
+		{96, 56, 128, 80},
+		{0, 56, 32, 80},
+		{128, 56, 160, 80},
+		{0, 56, 32, 80},
+		{0, 56, 32, 80},
+		{160, 56, 192, 80},
+	};
 
-	rcRight[0] = {0, 56, 32, 80};
-	rcRight[1] = {32, 56, 64, 80};
-	rcRight[2] = {64, 56, 96, 80};
-	rcRight[3] = {96, 56, 128, 80};
-	rcRight[4] = {0, 56, 32, 80};
-	rcRight[5] = {128, 56, 160, 80};
-	rcRight[6] = {0, 56, 32, 80};
-	rcRight[7] = {0, 56, 32, 80};
-	rcRight[8] = {160, 56, 192, 80};
-
 	bool bUpper = false;
 
 	if (npc->direct == 0 && gMC.x > npc->x)
@@ -1510,8 +1518,8 @@
 			else
 				npc->direct = 2;
 
-			npc->bits |= 0x20u;
-			npc->bits &= ~4u;
+			npc->bits |= 0x20;
+			npc->bits &= ~4;
 			// Fallthrough
 		case 11:
 			if (npc->act_wait)
@@ -1552,7 +1560,7 @@
 			}
 			else
 			{
-				npc->bits |= 0x20u;
+				npc->bits |= 0x20;
 				npc->act_no = 20;
 				npc->act_wait = 0;
 				PlaySoundObject(103, 1);
@@ -1662,9 +1670,7 @@
 //Table and chair
 void ActNpc119(NPCHAR *npc)
 {
-	RECT rc[1];
+	RECT rc = {248, 184, 272, 200};
 
-	rc[0] = {248, 184, 272, 200};
-
-	npc->rect = rc[0];
+	npc->rect = rc;
 }
--- a/src/NpcAct120.cpp
+++ b/src/NpcAct120.cpp
@@ -16,11 +16,11 @@
 //Colon (1)
 void ActNpc120(NPCHAR *npc)
 {
-	RECT rect[2];
+	RECT rect[2] = {
+		{64, 0, 80, 16},
+		{64, 16, 80, 32},
+	};
 
-	rect[0] = {64, 0, 80, 16};
-	rect[1] = {64, 16, 80, 32};
-
 	if (npc->direct == 0)
 		npc->rect = rect[0];
 	else
@@ -30,12 +30,12 @@
 //Colon (2)
 void ActNpc121(NPCHAR *npc)
 {
-	RECT rect[3];
+	RECT rect[3] = {
+		{0, 0, 16, 16},
+		{16, 0, 32, 16},
+		{112, 0, 128, 16},
+	};
 
-	rect[0] = {0, 0, 16, 16};
-	rect[1] = {16, 0, 32, 16};
-	rect[2] = {112, 0, 128, 16};
-
 	if (npc->direct == 0)
 	{
 		switch (npc->act_no)
@@ -81,31 +81,32 @@
 //Colon (attacking)
 void ActNpc122(NPCHAR *npc)
 {
-	RECT rcLeft[10];
-	RECT rcRight[10];
+	RECT rcLeft[10] = {
+		{0, 0, 16, 16},
+		{16, 0, 32, 16},
+		{32, 0, 48, 16},
+		{0, 0, 16, 16},
+		{48, 0, 64, 16},
+		{0, 0, 16, 16},
+		{80, 0, 96, 16},
+		{96, 0, 112, 16},
+		{112, 0, 128, 16},
+		{128, 0, 144, 16},
+	};
 
-	rcLeft[0] = {0, 0, 16, 16};
-	rcLeft[1] = {16, 0, 32, 16};
-	rcLeft[2] = {32, 0, 48, 16};
-	rcLeft[3] = {0, 0, 16, 16};
-	rcLeft[4] = {48, 0, 64, 16};
-	rcLeft[5] = {0, 0, 16, 16};
-	rcLeft[6] = {80, 0, 96, 16};
-	rcLeft[7] = {96, 0, 112, 16};
-	rcLeft[8] = {112, 0, 128, 16};
-	rcLeft[9] = {128, 0, 144, 16};
+	RECT rcRight[10] = {
+		{0, 16, 16, 32},
+		{16, 16, 32, 32},
+		{32, 16, 48, 32},
+		{0, 16, 16, 32},
+		{48, 16, 64, 32},
+		{0, 16, 16, 32},
+		{80, 16, 96, 32},
+		{96, 16, 112, 32},
+		{112, 16, 128, 32},
+		{128, 16, 144, 32},
+	};
 
-	rcRight[0] = {0, 16, 16, 32};
-	rcRight[1] = {16, 16, 32, 32};
-	rcRight[2] = {32, 16, 48, 32};
-	rcRight[3] = {0, 16, 16, 32};
-	rcRight[4] = {48, 16, 64, 32};
-	rcRight[5] = {0, 16, 16, 32};
-	rcRight[6] = {80, 16, 96, 32};
-	rcRight[7] = {96, 16, 112, 32};
-	rcRight[8] = {112, 16, 128, 32};
-	rcRight[9] = {128, 16, 144, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -269,13 +270,13 @@
 //Curly boss projectile
 void ActNpc123(NPCHAR *npc)
 {
-	RECT rect[4];
+	RECT rect[4] = {
+		{192, 0, 208, 16},
+		{208, 0, 224, 16},
+		{224, 0, 240, 16},
+		{240, 0, 256, 16},
+	};
 
-	rect[0] = {192, 0, 208, 16};
-	rect[1] = {208, 0, 224, 16};
-	rect[2] = {224, 0, 240, 16};
-	rect[3] = {240, 0, 256, 16};
-
 	bool bBreak = false;
 
 	switch (npc->act_no)
@@ -347,11 +348,11 @@
 //Sunstone
 void ActNpc124(NPCHAR *npc)
 {
-	RECT rect[2];
+	RECT rect[2] = {
+		{160, 0, 192, 32},
+		{192, 0, 224, 32},
+	};
 
-	rect[0] = {160, 0, 192, 32};
-	rect[1] = {192, 0, 224, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -412,11 +413,11 @@
 		npc->cond = 0;
 	}
 
-	RECT rc[2];
+	RECT rc[2] = {
+		{0, 96, 16, 112},
+		{16, 96, 32, 112},
+	};
 
-	rc[0] = {0, 96, 16, 112};
-	rc[1] = {16, 96, 32, 112};
-
 	if (npc->direct == 0)
 		npc->rect = rc[0];
 	else
@@ -426,23 +427,24 @@
 //Puppy (running)
 void ActNpc126(NPCHAR *npc)
 {
-	RECT rcLeft[6];
-	RECT rcRight[6];
+	RECT rcLeft[6] = {
+		{48, 144, 64, 160},
+		{64, 144, 80, 160},
+		{48, 144, 64, 160},
+		{80, 144, 96, 160},
+		{96, 144, 112, 160},
+		{112, 144, 128, 160},
+	};
 
-	rcLeft[0] = {48, 144, 64, 160};
-	rcLeft[1] = {64, 144, 80, 160};
-	rcLeft[2] = {48, 144, 64, 160};
-	rcLeft[3] = {80, 144, 96, 160};
-	rcLeft[4] = {96, 144, 112, 160};
-	rcLeft[5] = {112, 144, 128, 160};
+	RECT rcRight[6] = {
+		{48, 160, 64, 176},
+		{64, 160, 80, 176},
+		{48, 160, 64, 176},
+		{80, 160, 96, 176},
+		{96, 160, 112, 176},
+		{112, 160, 128, 176},
+	};
 
-	rcRight[0] = {48, 160, 64, 176};
-	rcRight[1] = {64, 160, 80, 176};
-	rcRight[2] = {48, 160, 64, 176};
-	rcRight[3] = {80, 160, 96, 176};
-	rcRight[4] = {96, 160, 112, 176};
-	rcRight[5] = {112, 160, 128, 176};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -557,15 +559,18 @@
 //Machine gun trail (Level 2)
 void ActNpc127(NPCHAR *npc)
 {
-	RECT rcV[3];
-	RECT rcH[3];
-	rcV[0] = {112, 48, 128, 64};
-	rcV[1] = {112, 64, 128, 80};
-	rcV[2] = {112, 80, 128, 96};
-	rcH[0] = {64, 80, 80, 96};
-	rcH[1] = {80, 80, 96, 96};
-	rcH[2] = {96, 80, 112, 96};
-	
+	RECT rcV[3] = {
+		{112, 48, 128, 64},
+		{112, 64, 128, 80},
+		{112, 80, 128, 96},
+	};
+
+	RECT rcH[3] = {
+		{64, 80, 80, 96},
+		{80, 80, 96, 96},
+		{96, 80, 112, 96},
+	};
+
 	if (++npc->ani_wait > 0)
 	{
 		npc->ani_wait = 0;
@@ -582,33 +587,39 @@
 //Machine gun trail (Level 3)
 void ActNpc128(NPCHAR *npc)
 {
-	RECT rcLeft[5];
-	RECT rcRight[5];
-	RECT rcUp[5];
-	RECT rcDown[5];
+	RECT rcLeft[5] = {
+		{0, 0, 0, 0},
+		{176, 16, 184, 32},
+		{184, 16, 192, 32},
+		{192, 16, 200, 32},
+		{200, 16, 208, 32},
+	};
 
-	rcLeft[0] = {0, 0, 0, 0};
-	rcLeft[1] = {176, 16, 184, 32};
-	rcLeft[2] = {184, 16, 192, 32};
-	rcLeft[3] = {192, 16, 200, 32};
-	rcLeft[4] = {200, 16, 208, 32};
-	rcRight[0] = {0, 0, 0, 0};
-	rcRight[1] = {232, 16, 240, 32};
-	rcRight[2] = {224, 16, 232, 32};
-	rcRight[3] = {216, 16, 224, 32};
-	rcRight[4] = {208, 16, 216, 32};
-	rcUp[0] = {0, 0, 0, 0};
-	rcUp[1] = {176, 32, 192, 40};
-	rcUp[2] = {176, 40, 192, 48};
-	rcUp[3] = {192, 32, 208, 40};
-	rcUp[4] = {192, 40, 208, 48};
-	rcDown[0] = {0, 0, 0, 0};
-	rcDown[1] = {208, 32, 224, 40};
-	rcDown[2] = {208, 40, 224, 48};
-	rcDown[3] = {224, 32, 232, 40};
-	rcDown[4] = {224, 40, 232, 48};
+	RECT rcRight[5] = {
+		{0, 0, 0, 0},
+		{232, 16, 240, 32},
+		{224, 16, 232, 32},
+		{216, 16, 224, 32},
+		{208, 16, 216, 32},
+	};
+
+	RECT rcUp[5] = {
+		{0, 0, 0, 0},
+		{176, 32, 192, 40},
+		{176, 40, 192, 48},
+		{192, 32, 208, 40},
+		{192, 40, 208, 48},
+	};
+
+	RECT rcDown[5] = {
+		{0, 0, 0, 0},
+		{208, 32, 224, 40},
+		{208, 40, 224, 48},
+		{224, 32, 232, 40},
+		{224, 40, 232, 48},
+	};
 	
-	if (!npc->act_no)
+	if (npc->act_no == 0)
 	{
 		npc->act_no = 1;
 		
@@ -647,25 +658,26 @@
 //Fireball trail (Level 2 & 3)
 void ActNpc129(NPCHAR *npc)
 {
-	RECT rect[18];
-	rect[0] = {0x80, 0x30, 0x90, 0x40};
-	rect[1] = {0x90, 0x30, 0xA0, 0x40};
-	rect[2] = {0xA0, 0x30, 0xB0, 0x40};
-	rect[3] = {0x80, 0x40, 0x90, 0x50};
-	rect[4] = {0x90, 0x40, 0xA0, 0x50};
-	rect[5] = {0xA0, 0x40, 0xB0, 0x50};
-	rect[6] = {0x80, 0x50, 0x90, 0x60};
-	rect[7] = {0x90, 0x50, 0xA0, 0x60};
-	rect[8] = {0xA0, 0x50, 0xB0, 0x60};
-	rect[9] = {0xB0, 0x30, 0xC0, 0x40};
-	rect[10] = {0xC0, 0x30, 0xD0, 0x40};
-	rect[11] = {0xD0, 0x30, 0xE0, 0x40};
-	rect[12] = {0xB0, 0x40, 0xC0, 0x50};
-	rect[13] = {0xC0, 0x40, 0xD0, 0x50};
-	rect[14] = {0xD0, 0x40, 0xE0, 0x50};
-	rect[15] = {0xB0, 0x50, 0xC0, 0x60};
-	rect[16] = {0xC0, 0x50, 0xD0, 0x60};
-	rect[17] = {0xD0, 0x50, 0xE0, 0x60};
+	RECT rect[18] = {
+		{0x80, 0x30, 0x90, 0x40},
+		{0x90, 0x30, 0xA0, 0x40},
+		{0xA0, 0x30, 0xB0, 0x40},
+		{0x80, 0x40, 0x90, 0x50},
+		{0x90, 0x40, 0xA0, 0x50},
+		{0xA0, 0x40, 0xB0, 0x50},
+		{0x80, 0x50, 0x90, 0x60},
+		{0x90, 0x50, 0xA0, 0x60},
+		{0xA0, 0x50, 0xB0, 0x60},
+		{0xB0, 0x30, 0xC0, 0x40},
+		{0xC0, 0x30, 0xD0, 0x40},
+		{0xD0, 0x30, 0xE0, 0x40},
+		{0xB0, 0x40, 0xC0, 0x50},
+		{0xC0, 0x40, 0xD0, 0x50},
+		{0xD0, 0x40, 0xE0, 0x50},
+		{0xB0, 0x50, 0xC0, 0x60},
+		{0xC0, 0x50, 0xD0, 0x60},
+		{0xD0, 0x50, 0xE0, 0x60},
+	};
 	
 	if (++npc->ani_wait > 1)
 	{
@@ -682,19 +694,20 @@
 //Puppy (sitting, wagging tail)
 void ActNpc130(NPCHAR *npc)
 {
-	RECT rcLeft[4];
-	RECT rcRight[4];
+	RECT rcLeft[4] = {
+		{48, 144, 64, 160},
+		{64, 144, 80, 160},
+		{48, 144, 64, 160},
+		{80, 144, 96, 160},
+	};
 
-	rcLeft[0] = {48, 144, 64, 160};
-	rcLeft[1] = {64, 144, 80, 160};
-	rcLeft[2] = {48, 144, 64, 160};
-	rcLeft[3] = {80, 144, 96, 160};
+	RECT rcRight[4] = {
+		{48, 160, 64, 176},
+		{64, 160, 80, 176},
+		{48, 160, 64, 176},
+		{80, 160, 96, 176},
+	};
 
-	rcRight[0] = {48, 160, 64, 176};
-	rcRight[1] = {64, 160, 80, 176};
-	rcRight[2] = {48, 160, 64, 176};
-	rcRight[3] = {80, 160, 96, 176};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -759,12 +772,9 @@
 //Puppy (sleeping)
 void ActNpc131(NPCHAR *npc)
 {
-	RECT rcLeft[1];
-	RECT rcRight[1];
+	RECT rcLeft[1] = {144, 144, 160, 160};
+	RECT rcRight[1] = {144, 160, 160, 176};
 
-	rcLeft[0] = {144, 144, 160, 160};
-	rcRight[0] = {144, 160, 160, 176};
-
 	if (++npc->act_wait > 100)
 	{
 		npc->act_wait = 0;
@@ -780,21 +790,22 @@
 //Puppy (barking)
 void ActNpc132(NPCHAR *npc)
 {
-	RECT rcLeft[5];
-	RECT rcRight[5];
+	RECT rcLeft[5] = {
+		{48, 144, 64, 160},
+		{64, 144, 80, 160},
+		{96, 144, 112, 160},
+		{96, 144, 112, 160},
+		{128, 144, 144, 160},
+	};
 
-	rcLeft[0] = {48, 144, 64, 160};
-	rcLeft[1] = {64, 144, 80, 160};
-	rcLeft[2] = {96, 144, 112, 160};
-	rcLeft[3] = {96, 144, 112, 160};
-	rcLeft[4] = {128, 144, 144, 160};
+	RECT rcRight[5] = {
+		{48, 160, 64, 176},
+		{64, 160, 80, 176},
+		{96, 160, 112, 176},
+		{96, 160, 112, 176},
+		{128, 160, 144, 176},
+	};
 
-	rcRight[0] = {48, 160, 64, 176};
-	rcRight[1] = {64, 160, 80, 176};
-	rcRight[2] = {96, 160, 112, 176};
-	rcRight[3] = {96, 160, 112, 176};
-	rcRight[4] = {128, 160, 144, 176};
-
 	if (npc->act_no < 100)
 	{
 		if (gMC.x < npc->x)
@@ -924,15 +935,16 @@
 //Jenka
 void ActNpc133(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{176, 32, 192, 48},
+		{192, 32, 208, 48},
+	};
 
-	rcLeft[0] = {176, 32, 192, 48};
-	rcLeft[1] = {192, 32, 208, 48};
+	RECT rcRight[2] = {
+		{176, 48, 192, 64},
+		{192, 48, 208, 64},
+	};
 
-	rcRight[0] = {176, 48, 192, 64};
-	rcRight[1] = {192, 48, 208, 64};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -969,17 +981,18 @@
 //Armadillo
 void ActNpc134(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{224, 0, 256, 16},
+		{256, 0, 288, 16},
+		{288, 0, 320, 16},
+	};
 
-	rcLeft[0] = {224, 0, 256, 16};
-	rcLeft[1] = {256, 0, 288, 16};
-	rcLeft[2] = {288, 0, 320, 16};
+	RECT rcRight[3] = {
+		{224, 16, 256, 32},
+		{256, 16, 288, 32},
+		{288, 16, 320, 32},
+	};
 
-	rcRight[0] = {224, 16, 256, 32};
-	rcRight[1] = {256, 16, 288, 32};
-	rcRight[2] = {288, 16, 320, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1057,15 +1070,16 @@
 //Skeleton
 void ActNpc135(NPCHAR *npc)
 {
-	RECT rcRight[2];
-	RECT rcLeft[2];
+	RECT rcLeft[2] = {
+		{256, 32, 288, 64},
+		{288, 32, 320, 64},
+	};
 
-	rcLeft[0] = {256, 32, 288, 64};
-	rcLeft[1] = {288, 32, 320, 64};
+	RECT rcRight[2] = {
+		{256, 64, 288, 96},
+		{288, 64, 320, 96},
+	};
 
-	rcRight[0] = {256, 64, 288, 96};
-	rcRight[1] = {288, 64, 320, 96};
-
 	if (gMC.x < npc->x - 0x2C000 || gMC.x > npc->x + 0x2C000 || gMC.y < npc->y - 0x14000 || gMC.y > npc->y + 0x8000)
 		npc->act_no = 0;
 
@@ -1165,15 +1179,16 @@
 //Puppy (carried)
 void ActNpc136(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{48, 144, 64, 160},
+		{64, 144, 80, 160},
+	};
 
-	rcLeft[0] = {48, 144, 64, 160};
-	rcLeft[1] = {64, 144, 80, 160};
+	RECT rcRight[2] = {
+		{48, 160, 64, 176},
+		{64, 160, 80, 176},
+	};
 
-	rcRight[0] = {48, 160, 64, 176};
-	rcRight[1] = {64, 160, 80, 176};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1227,22 +1242,17 @@
 //Large door (frame)
 void ActNpc137(NPCHAR *npc)
 {
-	RECT rc[1];
+	RECT rc = {96, 136, 128, 188};
 
-	rc[0] = {96, 136, 128, 188};
-
-	npc->rect = rc[0];
+	npc->rect = rc;
 }
 
 //Large door (door)
 void ActNpc138(NPCHAR *npc)
 {
-	RECT rcLeft[1];
-	RECT rcRight[1];
+	RECT rcLeft = {96, 112, 112, 136};
+	RECT rcRight = {112, 112, 128, 136};
 
-	rcLeft[0] = {96, 112, 112, 136};
-	rcRight[0] = {112, 112, 128, 136};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1250,12 +1260,12 @@
 
 			if (npc->direct == 0)
 			{
-				npc->rect = rcLeft[0];
+				npc->rect = rcLeft;
 				npc->x += 0x1000;
 			}
 			else
 			{
-				npc->rect = rcRight[0];
+				npc->rect = rcRight;
 				npc->x -= 0x1000;
 			}
 
@@ -1274,13 +1284,13 @@
 
 			if (npc->direct == 0)
 			{
-				npc->rect = rcLeft[0];
+				npc->rect = rcLeft;
 				npc->rect.left += npc->act_wait / 8;
 			}
 			else
 			{
 				npc->x = npc->tgt_x + ((npc->act_wait / 8) * 0x200);
-				npc->rect = rcRight[0];
+				npc->rect = rcRight;
 				npc->rect.right -= npc->act_wait / 8;
 			}
 
@@ -1294,16 +1304,17 @@
 //Doctor
 void ActNpc139(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{0, 128, 24, 160},
+		{24, 128, 48, 160},
+		{48, 128, 72, 160},
+	};
 
-	rcLeft[0] = {0, 128, 24, 160};
-	rcLeft[1] = {24, 128, 48, 160};
-	rcLeft[2] = {48, 128, 72, 160};
-
-	rcRight[0] = {0, 160, 24, 192};
-	rcRight[1] = {24, 160, 48, 192};
-	rcRight[2] = {48, 160, 72, 192};
+	RECT rcRight[3] = {
+		{0, 160, 24, 192},
+		{24, 160, 48, 192},
+		{48, 160, 72, 192},
+	};
 
 	switch (npc->act_no)
 	{
--- a/src/NpcAct140.cpp
+++ b/src/NpcAct140.cpp
@@ -17,39 +17,40 @@
 //Toroko (frenzied)
 void ActNpc140(NPCHAR *npc)
 {
-	RECT rcLeft[14];
-	RECT rcRight[14];
+	RECT rcLeft[14] = {
+		{0, 0, 32, 32},
+		{32, 0, 64, 32},
+		{64, 0, 96, 32},
+		{96, 0, 128, 32},
+		{128, 0, 160, 32},
+		{160, 0, 192, 32},
+		{192, 0, 224, 32},
+		{224, 0, 256, 32},
+		{0, 64, 32, 96},
+		{32, 64, 64, 96},
+		{64, 64, 96, 96},
+		{96, 64, 128, 96},
+		{128, 64, 160, 96},
+		{0, 0, 0, 0},
+	};
 
-	rcLeft[0] = {0, 0, 32, 32};
-	rcLeft[1] = {32, 0, 64, 32};
-	rcLeft[2] = {64, 0, 96, 32};
-	rcLeft[3] = {96, 0, 128, 32};
-	rcLeft[4] = {128, 0, 160, 32};
-	rcLeft[5] = {160, 0, 192, 32};
-	rcLeft[6] = {192, 0, 224, 32};
-	rcLeft[7] = {224, 0, 256, 32};
-	rcLeft[8] = {0, 64, 32, 96};
-	rcLeft[9] = {32, 64, 64, 96};
-	rcLeft[10] = {64, 64, 96, 96};
-	rcLeft[11] = {96, 64, 128, 96};
-	rcLeft[12] = {128, 64, 160, 96};
-	rcLeft[13] = {0, 0, 0, 0};
+	RECT rcRight[14] = {
+		{0, 32, 32, 64},
+		{32, 32, 64, 64},
+		{64, 32, 96, 64},
+		{96, 32, 128, 64},
+		{128, 32, 160, 64},
+		{160, 32, 192, 64},
+		{192, 32, 224, 64},
+		{224, 32, 256, 64},
+		{0, 96, 32, 128},
+		{32, 96, 64, 128},
+		{64, 96, 96, 128},
+		{96, 96, 128, 128},
+		{128, 96, 160, 128},
+		{0, 0, 0, 0},
+	};
 
-	rcRight[0] = {0, 32, 32, 64};
-	rcRight[1] = {32, 32, 64, 64};
-	rcRight[2] = {64, 32, 96, 64};
-	rcRight[3] = {96, 32, 128, 64};
-	rcRight[4] = {128, 32, 160, 64};
-	rcRight[5] = {160, 32, 192, 64};
-	rcRight[6] = {192, 32, 224, 64};
-	rcRight[7] = {224, 32, 256, 64};
-	rcRight[8] = {0, 96, 32, 128};
-	rcRight[9] = {32, 96, 64, 128};
-	rcRight[10] = {64, 96, 96, 128};
-	rcRight[11] = {96, 96, 128, 128};
-	rcRight[12] = {128, 96, 160, 128};
-	rcRight[13] = {0, 0, 0, 0};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -362,11 +363,11 @@
 // Toroko block projectile
 void ActNpc141(NPCHAR *npc)
 {
-	RECT rect[2]; // [sp+8h] [bp-24h]@1
+	RECT rect[2] = {
+		{288, 32, 304, 48},
+		{304, 32, 320, 48},
+	};
 
-	rect[0] = {288, 32, 304, 48};
-	rect[1] = {304, 32, 320, 48};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -450,14 +451,14 @@
 // Flower Cub
 void ActNpc142(NPCHAR *npc)
 {
-	RECT rect[5];
+	RECT rect[5] = {
+		{0, 128, 16, 144},
+		{16, 128, 32, 144},
+		{32, 128, 48, 144},
+		{48, 128, 64, 144},
+		{64, 128, 80, 144},
+	};
 
-	rect[0] = {0, 128, 16, 144};
-	rect[1] = {16, 128, 32, 144};
-	rect[2] = {32, 128, 48, 144};
-	rect[3] = {48, 128, 64, 144};
-	rect[4] = {64, 128, 80, 144};
-
 	switch (npc->act_no)
 	{
 		case 10:
@@ -538,13 +539,9 @@
 // Jenka (collapsed)
 void ActNpc143(NPCHAR *npc)
 {
-	RECT rcLeft[1];
-	RECT rcRight[1];
+	RECT rcLeft[1] = {208, 32, 224, 48};
+	RECT rcRight[1] = {208, 48, 224, 64};
 
-	rcLeft[0] = {208, 32, 224, 48};
-
-	rcRight[0] = {208, 48, 224, 64};
-
 	if (npc->direct == 0)
 		npc->rect = rcLeft[npc->ani_no];
 	else
@@ -554,21 +551,22 @@
 //Toroko (teleporting in)
 void ActNpc144(NPCHAR *npc)
 {
-	RECT rcLeft[5];
-	RECT rcRight[5];
+	RECT rcLeft[5] = {
+		{0, 64, 16, 80},
+		{16, 64, 32, 80},
+		{32, 64, 48, 80},
+		{16, 64, 32, 80},
+		{128, 64, 144, 80},
+	};
 
-	rcLeft[0] = {0, 64, 16, 80};
-	rcLeft[1] = {16, 64, 32, 80};
-	rcLeft[2] = {32, 64, 48, 80};
-	rcLeft[3] = {16, 64, 32, 80};
-	rcLeft[4] = {128, 64, 144, 80};
+	RECT rcRight[5] = {
+		{0, 80, 16, 96},
+		{16, 80, 32, 96},
+		{32, 80, 48, 96},
+		{16, 80, 32, 96},
+		{128, 80, 144, 96},
+	};
 
-	rcRight[0] = {0, 80, 16, 96};
-	rcRight[1] = {16, 80, 32, 96};
-	rcRight[2] = {32, 80, 48, 96};
-	rcRight[3] = {16, 80, 32, 96};
-	rcRight[4] = {128, 80, 144, 96};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -660,12 +658,9 @@
 //King's sword
 void ActNpc145(NPCHAR *npc)
 {
-	RECT rcLeft[1];
-	RECT rcRight[1];
+	RECT rcLeft[1] = {96, 32, 112, 48};
+	RECT rcRight[1] = {112, 32, 128, 48};
 
-	rcLeft[0] = {96, 32, 112, 48};
-	rcRight[0] = {112, 32, 128, 48};
-
 	if (npc->act_no == 0)
 	{
 		if (npc->pNpc->count2 == 0)
@@ -700,14 +695,14 @@
 //Lightning
 void ActNpc146(NPCHAR *npc)
 {
-	RECT rect[5];
+	RECT rect[5] = {
+		{0, 0, 0, 0},
+		{256, 0, 272, 240},
+		{272, 0, 288, 240},
+		{288, 0, 304, 240},
+		{304, 0, 320, 240},
+	};
 
-	rect[0] = {0, 0, 0, 0};
-	rect[1] = {256, 0, 272, 240};
-	rect[2] = {272, 0, 288, 240};
-	rect[3] = {288, 0, 304, 240};
-	rect[4] = {304, 0, 320, 240};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -750,23 +745,24 @@
 //Critter (purple)
 void ActNpc147(NPCHAR *npc)
 {
-	RECT rcLeft[6];
-	RECT rcRight[6];
+	RECT rcLeft[6] = {
+		{0, 96, 16, 112},
+		{16, 96, 32, 112},
+		{32, 96, 48, 112},
+		{48, 96, 64, 112},
+		{64, 96, 80, 112},
+		{80, 96, 96, 112},
+	};
 
-	rcLeft[0] = {0, 96, 16, 112};
-	rcLeft[1] = {16, 96, 32, 112};
-	rcLeft[2] = {32, 96, 48, 112};
-	rcLeft[3] = {48, 96, 64, 112};
-	rcLeft[4] = {64, 96, 80, 112};
-	rcLeft[5] = {80, 96, 96, 112};
+	RECT rcRight[6] = {
+		{0, 112, 16, 128},
+		{16, 112, 32, 128},
+		{32, 112, 48, 128},
+		{48, 112, 64, 128},
+		{64, 112, 80, 128},
+		{80, 112, 96, 128},
+	};
 
-	rcRight[0] = {0, 112, 16, 128};
-	rcRight[1] = {16, 112, 32, 128};
-	rcRight[2] = {32, 112, 48, 128};
-	rcRight[3] = {48, 112, 64, 128};
-	rcRight[4] = {64, 112, 80, 128};
-	rcRight[5] = {80, 112, 96, 128};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -937,11 +933,11 @@
 	npc->y += npc->ym;
 	npc->x += npc->xm;
 
-	RECT rect_left[2];
+	RECT rect_left[2] = {
+		{96, 96, 104, 104},
+		{104, 96, 112, 104},
+	};
 
-	rect_left[0] = {96, 96, 104, 104};
-	rect_left[1] = {104, 96, 112, 104};
-
 	if (++npc->ani_no > 1)
 		npc->ani_no = 0;
 
@@ -1072,39 +1068,37 @@
 
 	npc->x += npc->xm;
 
-	RECT rect[1];
-
-	rect[0] = {16, 0, 48, 32};
-
-	npc->rect = rect[0];
+	RECT rect = {16, 0, 48, 32};
+	npc->rect = rect;
 }
 
 //Quote
 void ActNpc150(NPCHAR *npc)
 {
-	RECT rcLeft[9];
-	RECT rcRight[9];
+	RECT rcLeft[9] = {
+		{0, 0, 16, 16},
+		{48, 0, 64, 16},
+		{144, 0, 160, 16},
+		{16, 0, 32, 16},
+		{0, 0, 16, 16},
+		{32, 0, 48, 16},
+		{0, 0, 16, 16},
+		{160, 0, 176, 16},
+		{112, 0, 128, 16},
+	};
+
+	RECT rcRight[9] = {
+		{0, 16, 16, 32},
+		{48, 16, 64, 32},
+		{144, 16, 160, 32},
+		{16, 16, 32, 32},
+		{0, 16, 16, 32},
+		{32, 16, 48, 32},
+		{0, 16, 16, 32},
+		{160, 16, 176, 32},
+		{112, 16, 128, 32},
+	};
 	
-	rcLeft[0] = {0, 0, 16, 16};
-	rcLeft[1] = {48, 0, 64, 16};
-	rcLeft[2] = {144, 0, 160, 16};
-	rcLeft[3] = {16, 0, 32, 16};
-	rcLeft[4] = {0, 0, 16, 16};
-	rcLeft[5] = {32, 0, 48, 16};
-	rcLeft[6] = {0, 0, 16, 16};
-	rcLeft[7] = {160, 0, 176, 16};
-	rcLeft[8] = {112, 0, 128, 16};
-	
-	rcRight[0] = {0, 16, 16, 32};
-	rcRight[1] = {48, 16, 64, 32};
-	rcRight[2] = {144, 16, 160, 32};
-	rcRight[3] = {16, 16, 32, 32};
-	rcRight[4] = {0, 16, 16, 32};
-	rcRight[5] = {32, 16, 48, 32};
-	rcRight[6] = {0, 16, 16, 32};
-	rcRight[7] = {160, 16, 176, 32};
-	rcRight[8] = {112, 16, 128, 32};
-	
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1218,19 +1212,17 @@
 			if (npc->ani_no > 6)
 				npc->ani_no = 3;
 			break;
-		default:
-			break;
 	}
 	
-	if (npc->direct)
-		npc->rect = rcRight[npc->ani_no];
-	else
+	if (npc->direct == 0)
 		npc->rect = rcLeft[npc->ani_no];
+	else
+		npc->rect = rcRight[npc->ani_no];
 	
 	if (npc->act_no == 21)
 	{
 		npc->rect.bottom = npc->act_wait / 4 + npc->rect.top;
-		if (npc->act_wait / 2 & 1)
+		if (npc->act_wait / 2 % 2)
 			++npc->rect.left;
 	}
 	
@@ -1244,15 +1236,16 @@
 //Blue robot (standing)
 void ActNpc151(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{192, 0, 208, 16},
+		{208, 0, 224, 16},
+	};
 
-	rcLeft[0] = {192, 0, 208, 16};
-	rcLeft[1] = {208, 0, 224, 16};
+	RECT rcRight[2] = {
+		{192, 16, 208, 32},
+		{208, 16, 224, 32},
+	};
 
-	rcRight[0] = {192, 16, 208, 32};
-	rcRight[1] = {208, 16, 224, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1290,13 +1283,17 @@
 //Shutter stuck
 void ActNpc152(NPCHAR *npc)
 {
-	if (!npc->act_no)
+	RECT rc = {0, 0, 0, 0};
+
+	if (npc->act_no == 0)
 	{
 		if (npc->direct == 2)
 			npc->y += 0x2000;
+
 		npc->act_no = 1;
 	}
-	npc->rect = {0, 0, 0, 0};
+
+	npc->rect = rc;
 }
 
 static const RECT grcKitL[21] = {
@@ -1681,8 +1678,6 @@
 //Gaudi projectile
 void ActNpc156(NPCHAR *npc)
 {
-	RECT rect_left[3];
-
 	if (npc->flag & 0xFF)
 	{
 		SetCaret(npc->x, npc->y, 2, 0);
@@ -1692,9 +1687,11 @@
 	npc->y += npc->ym;
 	npc->x += npc->xm;
 
-	rect_left[0] = {96, 112, 112, 128};
-	rect_left[1] = {112, 112, 128, 128};
-	rect_left[2] = {128, 112, 144, 128};
+	RECT rect_left[3] = {
+		{96, 112, 112, 128},
+		{112, 112, 128, 128},
+		{128, 112, 144, 128},
+	};
 
 	if (++npc->ani_no > 2)
 		npc->ani_no = 0;
@@ -1825,27 +1822,24 @@
 
 	npc->y += npc->ym;
 
-	RECT rect[1];
-
-	rect[0] = {16, 0, 48, 32};
-
-	npc->rect = rect[0];
+	RECT rect = {16, 0, 48, 32};
+	npc->rect = rect;
 }
 
 //Fish Missile
 void ActNpc158(NPCHAR *npc)
 {
-	RECT rect[8];
+	RECT rect[8] = {
+		{0, 224, 16, 240},
+		{16, 224, 32, 240},
+		{32, 224, 48, 240},
+		{48, 224, 64, 240},
+		{64, 224, 80, 240},
+		{80, 224, 96, 240},
+		{96, 224, 112, 240},
+		{112, 224, 128, 240},
+	};
 
-	rect[0] = {0, 224, 16, 240};
-	rect[1] = {16, 224, 32, 240};
-	rect[2] = {32, 224, 48, 240};
-	rect[3] = {48, 224, 64, 240};
-	rect[4] = {64, 224, 80, 240};
-	rect[5] = {80, 224, 96, 240};
-	rect[6] = {96, 224, 112, 240};
-	rect[7] = {112, 224, 128, 240};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1914,10 +1908,8 @@
 //Monster X (defeated)
 void ActNpc159(NPCHAR *npc)
 {
-	RECT rect[1];
+	RECT rect = {144, 128, 192, 200};
 
-	rect[0] = {144, 128, 192, 200};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1953,7 +1945,7 @@
 	npc->y += npc->ym;
 	npc->x += npc->xm;
 
-	npc->rect = rect[0];
+	npc->rect = rect;
 
 	if (npc->act_wait % 8 == 1)
 		SetNpChar(4, npc->x + (Random(-16, 16) * 0x200), npc->y + (Random(-16, 16) * 0x200), Random(-341, 341), Random(-341, 341), 0, 0, 0x100);
--- a/src/NpcAct160.cpp
+++ b/src/NpcAct160.cpp
@@ -152,19 +152,20 @@
 			break;
 	}
 
-	RECT rect_left[4];
-	RECT rect_right[4];
+	RECT rect_left[4] = {
+		{0, 0, 40, 24},
+		{40, 0, 80, 24},
+		{80, 0, 120, 24},
+		{120, 0, 160, 24},
+	};
 
-	rect_left[0] = {0, 0, 40, 24};
-	rect_left[1] = {40, 0, 80, 24};
-	rect_left[2] = {80, 0, 120, 24};
-	rect_left[3] = {120, 0, 160, 24};
+	RECT rect_right[4] = {
+		{0, 24, 40, 48},
+		{40, 24, 80, 48},
+		{80, 24, 120, 48},
+		{120, 24, 160, 48},
+	};
 
-	rect_right[0] = {0, 24, 40, 48};
-	rect_right[1] = {40, 24, 80, 48};
-	rect_right[2] = {80, 24, 120, 48};
-	rect_right[3] = {120, 24, 160, 48};
-
 	if (npc->direct == 0)
 		npc->rect = rect_left[npc->ani_no];
 	else
@@ -174,8 +175,6 @@
 //Puu Black projectile
 void ActNpc161(NPCHAR *npc)
 {
-	RECT rect[3];
-
 	npc->exp = 0;
 
 	if (gSuperXpos > npc->x)
@@ -217,9 +216,11 @@
 			npc->ani_no = 1;
 	}
 
-	rect[0] = {0, 48, 16, 64};
-	rect[1] = {16, 48, 32, 64};
-	rect[2] = {32, 48, 48, 64};
+	RECT rect[3] = {
+		{0, 48, 16, 64},
+		{16, 48, 32, 64},
+		{32, 48, 48, 64},
+	};
 
 	npc->rect = rect[npc->ani_no];
 }
@@ -314,15 +315,16 @@
 //Dr Gero
 void ActNpc163(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{192, 0, 208, 16},
+		{208, 0, 224, 16},
+	};
 
-	rcLeft[0] = {192, 0, 208, 16};
-	rcLeft[1] = {208, 0, 224, 16};
+	RECT rcRight[2] = {
+		{192, 16, 208, 32},
+		{208, 16, 224, 32},
+	};
 
-	rcRight[0] = {192, 16, 208, 32};
-	rcRight[1] = {208, 16, 224, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -359,15 +361,16 @@
 //Nurse Hasumi
 void ActNpc164(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{224, 0, 240, 16},
+		{240, 0, 256, 16},
+	};
 
-	rcLeft[0] = {224, 0, 240, 16};
-	rcLeft[1] = {240, 0, 256, 16};
+	RECT rcRight[2] = {
+		{224, 16, 240, 32},
+		{240, 16, 256, 32},
+	};
 
-	rcRight[0] = {224, 16, 240, 32};
-	rcRight[1] = {240, 16, 256, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -404,14 +407,13 @@
 //Curly (collapsed)
 void ActNpc165(NPCHAR *npc)
 {
-	RECT rcRight[2];
-	RECT rcLeft[1];
+	RECT rcRight[2] = {
+		{192, 96, 208, 112},
+		{208, 96, 224, 112},
+	};
 
-	rcRight[0] = {192, 96, 208, 112};
-	rcRight[1] = {208, 96, 224, 112};
+	RECT rcLeft = {144, 96, 160, 112};
 
-	rcLeft[0] = {144, 96, 160, 112};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -428,7 +430,7 @@
 	}
 
 	if (npc->direct == 0)
-		npc->rect = rcLeft[0];
+		npc->rect = rcLeft;
 	else
 		npc->rect = rcRight[npc->ani_no];
 }
@@ -436,11 +438,11 @@
 //Chaba
 void ActNpc166(NPCHAR *npc)
 {
-	RECT rcLeft[2];
+	RECT rcLeft[2] = {
+		{144, 104, 184, 128},
+		{184, 104, 224, 128},
+	};
 
-	rcLeft[0] = {144, 104, 184, 128};
-	rcLeft[1] = {184, 104, 224, 128};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -474,12 +476,12 @@
 //Professor Booster (falling)
 void ActNpc167(NPCHAR *npc)
 {
-	RECT rect[3];
+	RECT rect[3] = {
+		{304, 0, 320, 16},
+		{304, 16, 320, 32},
+		{0, 0, 0, 0},
+	};
 
-	rect[0] = {304, 0, 320, 16};
-	rect[1] = {304, 16, 320, 32};
-	rect[2] = {0, 0, 0, 0};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -522,10 +524,8 @@
 //Boulder
 void ActNpc168(NPCHAR *npc)
 {
-	RECT rect[1];
+	RECT rect = {264, 56, 320, 96};
 
-	rect[0] = {264, 56, 320, 96};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -572,7 +572,7 @@
 			break;
 	}
 
-	npc->rect = rect[0];
+	npc->rect = rect;
 }
 
 //Balrog (missile)
@@ -791,29 +791,30 @@
 	npc->x += npc->xm;
 	npc->y += npc->ym;
 
-	RECT rect_left[9];
-	RECT rect_right[9];
+	RECT rect_left[9] = {
+		{0, 0, 40, 24},
+		{0, 48, 40, 72},
+		{0, 0, 40, 24},
+		{40, 48, 80, 72},
+		{0, 0, 40, 24},
+		{80, 48, 120, 72},
+		{120, 48, 160, 72},
+		{120, 0, 160, 24},
+		{80, 0, 120, 24},
+	};
 
-	rect_left[0] = {0, 0, 40, 24};
-	rect_left[1] = {0, 48, 40, 72};
-	rect_left[2] = {0, 0, 40, 24};
-	rect_left[3] = {40, 48, 80, 72};
-	rect_left[4] = {0, 0, 40, 24};
-	rect_left[5] = {80, 48, 120, 72};
-	rect_left[6] = {120, 48, 160, 72};
-	rect_left[7] = {120, 0, 160, 24};
-	rect_left[8] = {80, 0, 120, 24};
+	RECT rect_right[9] = {
+		{0, 24, 40, 48},
+		{0, 72, 40, 96},
+		{0, 24, 40, 48},
+		{40, 72, 80, 96},
+		{0, 24, 40, 48},
+		{80, 72, 120, 96},
+		{120, 72, 160, 96},
+		{120, 24, 160, 48},
+		{80, 24, 120, 48},
+	};
 
-	rect_right[0] = {0, 24, 40, 48};
-	rect_right[1] = {0, 72, 40, 96};
-	rect_right[2] = {0, 24, 40, 48};
-	rect_right[3] = {40, 72, 80, 96};
-	rect_right[4] = {0, 24, 40, 48};
-	rect_right[5] = {80, 72, 120, 96};
-	rect_right[6] = {120, 72, 160, 96};
-	rect_right[7] = {120, 24, 160, 48};
-	rect_right[8] = {80, 24, 120, 48};
-
 	if (npc->direct == 0)
 		npc->rect = rect_left[npc->ani_no];
 	else
@@ -823,15 +824,16 @@
 //Balrog missile
 void ActNpc170(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{112, 96, 128, 104},
+		{128, 96, 144, 104},
+	};
 
-	rcLeft[0] = {112, 96, 128, 104};
-	rcLeft[1] = {128, 96, 144, 104};
+	RECT rcRight[2] = {
+		{112, 104, 128, 112},
+		{128, 104, 144, 112},
+	};
 
-	rcRight[0] = {112, 104, 128, 112};
-	rcRight[1] = {128, 104, 144, 112};
-
 	bool bHit = false;
 
 	if (npc->direct == 0 && npc->flag & 1)
@@ -912,15 +914,16 @@
 //Fire Whirrr
 void ActNpc171(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{120, 48, 152, 80},
+		{152, 48, 184, 80},
+	};
 
-	rcLeft[0] = {120, 48, 152, 80};
-	rcLeft[1] = {152, 48, 184, 80};
+	RECT rcRight[2] = {
+		{184, 48, 216, 80},
+		{216, 48, 248, 80},
+	};
 
-	rcRight[0] = {184, 48, 216, 80};
-	rcRight[1] = {216, 48, 248, 80};
-
 	if (gMC.x < npc->x)
 		npc->direct = 0;
 	else
@@ -998,12 +1001,12 @@
 //Fire Whirr projectile
 void ActNpc172(NPCHAR *npc)
 {
-	RECT rect[3];
+	RECT rect[3] = {
+		{248, 48, 264, 80},
+		{264, 48, 280, 80},
+		{280, 48, 296, 80},
+	};
 
-	rect[0] = {248, 48, 264, 80};
-	rect[1] = {264, 48, 280, 80};
-	rect[2] = {280, 48, 296, 80};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1040,19 +1043,20 @@
 //Gaudi (armoured)
 void ActNpc173(NPCHAR *npc)
 {
-	RECT rcLeft[4];
-	RECT rcRight[4];
+	RECT rcLeft[4] = {
+		{0, 128, 24, 152},
+		{24, 128, 48, 152},
+		{48, 128, 72, 152},
+		{72, 128, 96, 152},
+	};
 
-	rcLeft[0] = {0, 128, 24, 152};
-	rcLeft[1] = {24, 128, 48, 152};
-	rcLeft[2] = {48, 128, 72, 152};
-	rcLeft[3] = {72, 128, 96, 152};
+	RECT rcRight[4] = {
+		{0, 152, 24, 176},
+		{24, 152, 48, 176},
+		{48, 152, 72, 176},
+		{72, 152, 96, 176},
+	};
 
-	rcRight[0] = {0, 152, 24, 176};
-	rcRight[1] = {24, 152, 48, 176};
-	rcRight[2] = {48, 152, 72, 176};
-	rcRight[3] = {72, 152, 96, 176};
-
 	if (npc->x <= gMC.x + (WINDOW_WIDTH * 0x200) && npc->x >= gMC.x - (WINDOW_WIDTH * 0x200) && npc->y <= gMC.y + (WINDOW_HEIGHT * 0x200) && npc->y >= gMC.y - (WINDOW_HEIGHT * 0x200))
 	{
 		switch (npc->act_no)
@@ -1201,8 +1205,6 @@
 //Armoured-Gaudi projectile
 void ActNpc174(NPCHAR *npc)
 {
-	RECT rect_left[3];
-
 	bool bHit;
 	switch (npc->act_no)
 	{
@@ -1272,9 +1274,11 @@
 	if (npc->ym < -0x5FF)
 		npc->ym = -0x5FF;
 
-	rect_left[0] = {120, 80, 136, 96};
-	rect_left[1] = {136, 80, 152, 96};
-	rect_left[2] = {152, 80, 168, 96};
+	RECT rect_left[3] = {
+		{120, 80, 136, 96},
+		{136, 80, 152, 96},
+		{152, 80, 168, 96},
+	};
 
 	if (++npc->ani_no > 2)
 		npc->ani_no = 0;
@@ -1285,15 +1289,16 @@
 //Gaudi egg
 void ActNpc175(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{168, 80, 192, 104},
+		{192, 80, 216, 104},
+	};
 
-	rcLeft[0] = {168, 80, 192, 104};
-	rcLeft[1] = {192, 80, 216, 104};
+	RECT rcRight[2] = {
+		{216, 80, 240, 104},
+		{240, 80, 264, 104},
+	};
 
-	rcRight[0] = {216, 80, 240, 104};
-	rcRight[1] = {240, 80, 264, 104};
-
 	if (npc->act_no < 3 && npc->life < 90)
 	{
 		LoseNpChar(npc, 0);
@@ -1330,17 +1335,18 @@
 //BuyoBuyo Base
 void ActNpc176(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{96, 128, 128, 144},
+		{128, 128, 160, 144},
+		{160, 128, 192, 144},
+	};
 
-	rcLeft[0] = {96, 128, 128, 144};
-	rcLeft[1] = {128, 128, 160, 144};
-	rcLeft[2] = {160, 128, 192, 144};
+	RECT rcRight[3] = {
+		{96, 144, 128, 160},
+		{128, 144, 160, 160},
+		{160, 144, 192, 160},
+	};
 
-	rcRight[0] = {96, 144, 128, 160};
-	rcRight[1] = {128, 144, 160, 160};
-	rcRight[2] = {160, 144, 192, 160};
-
 	if (npc->act_no < 3 && npc->life < 940)
 	{
 		LoseNpChar(npc, 0);
@@ -1426,11 +1432,11 @@
 //BuyoBuyo
 void ActNpc177(NPCHAR *npc)
 {
-	RECT rc[2];
+	RECT rc[2] = {
+		{192, 128, 208, 144},
+		{208, 128, 224, 144},
+	};
 
-	rc[0] = {192, 128, 208, 144};
-	rc[1] = {208, 128, 224, 144};
-
 	if (npc->flag & 0xFF)
 	{
 		SetCaret(npc->x, npc->y, 3, 0);
@@ -1538,12 +1544,12 @@
 		npc->x += npc->xm;
 	}
 
-	RECT rect_left[3];
+	RECT rect_left[3] = {
+		{0, 224, 16, 240},
+		{16, 224, 32, 240},
+		{32, 224, 48, 240},
+	};
 
-	rect_left[0] = {0, 224, 16, 240};
-	rect_left[1] = {16, 224, 32, 240};
-	rect_left[2] = {32, 224, 48, 240};
-
 	if (++npc->ani_wait > 1)
 	{
 		npc->ani_wait = 0;
@@ -1580,11 +1586,11 @@
 	npc->y += npc->ym;
 	npc->x += npc->xm;
 
-	RECT rect_left[3];
-
-	rect_left[0] = {48, 224, 72, 240};
-	rect_left[1] = {72, 224, 96, 240};
-	rect_left[2] = {96, 224, 120, 240};
+	RECT rect_left[3] = {
+		{48, 224, 72, 240},
+		{72, 224, 96, 240},
+		{96, 224, 120, 240},
+	};
 
 	if (++npc->ani_wait > 1)
 	{
--- a/src/NpcAct180.cpp
+++ b/src/NpcAct180.cpp
@@ -17,33 +17,34 @@
 //Curly AI
 void ActNpc180(NPCHAR *npc)
 {
-	RECT rcLeft[11];
-	RECT rcRight[11];
+	RECT rcLeft[11] = {
+		{0, 96, 16, 112},
+		{16, 96, 32, 112},
+		{0, 96, 16, 112},
+		{32, 96, 48, 112},
+		{0, 96, 16, 112},
+		{48, 96, 64, 112},
+		{64, 96, 80, 112},
+		{48, 96, 64, 112},
+		{80, 96, 96, 112},
+		{48, 96, 64, 112},
+		{144, 96, 160, 112},
+	};
 
-	rcLeft[0] = {0, 96, 16, 112};
-	rcLeft[1] = {16, 96, 32, 112};
-	rcLeft[2] = {0, 96, 16, 112};
-	rcLeft[3] = {32, 96, 48, 112};
-	rcLeft[4] = {0, 96, 16, 112};
-	rcLeft[5] = {48, 96, 64, 112};
-	rcLeft[6] = {64, 96, 80, 112};
-	rcLeft[7] = {48, 96, 64, 112};
-	rcLeft[8] = {80, 96, 96, 112};
-	rcLeft[9] = {48, 96, 64, 112};
-	rcLeft[10] = {144, 96, 160, 112};
+	RECT rcRight[11] = {
+		{0, 112, 16, 128},
+		{16, 112, 32, 128},
+		{0, 112, 16, 128},
+		{32, 112, 48, 128},
+		{0, 112, 16, 128},
+		{48, 112, 64, 128},
+		{64, 112, 80, 128},
+		{48, 112, 64, 128},
+		{80, 112, 96, 128},
+		{48, 112, 64, 128},
+		{144, 112, 160, 128},
+	};
 
-	rcRight[0] = {0, 112, 16, 128};
-	rcRight[1] = {16, 112, 32, 128};
-	rcRight[2] = {0, 112, 16, 128};
-	rcRight[3] = {32, 112, 48, 128};
-	rcRight[4] = {0, 112, 16, 128};
-	rcRight[5] = {48, 112, 64, 128};
-	rcRight[6] = {64, 112, 80, 128};
-	rcRight[7] = {48, 112, 64, 128};
-	rcRight[8] = {80, 112, 96, 128};
-	rcRight[9] = {48, 112, 64, 128};
-	rcRight[10] = {144, 112, 160, 128};
-
 	if (npc->y < gMC.y - 0x14000)
 	{
 		if ( npc->y >= 0x20000 )
@@ -269,7 +270,7 @@
 	if (npc->xm > 0x300)
 		npc->xm = 0x300;
 	if (npc->xm < -0x300)
-		npc->xm = -0x300u;
+		npc->xm = -0x300;
 
 	if (npc->ym > 0x5FF)
 		npc->ym = 0x5FF;
@@ -294,15 +295,16 @@
 //Curly AI Machine Gun
 void ActNpc181(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{216, 152, 232, 168},
+		{232, 152, 248, 168},
+	};
 
-	rcLeft[0] = {216, 152, 232, 168};
-	rcLeft[1] = {232, 152, 248, 168};
+	RECT rcRight[2] = {
+		{216, 168, 232, 184},
+		{232, 168, 248, 184},
+	};
 
-	rcRight[0] = {216, 168, 232, 184};
-	rcRight[1] = {232, 168, 248, 184};
-
 	if (npc->pNpc)
 	{
 		if (npc->pNpc->ani_no < 5)
@@ -400,15 +402,16 @@
 //Curly AI Polar Star
 void ActNpc182(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{184, 152, 200, 168},
+		{200, 152, 216, 168},
+	};
 
-	rcLeft[0] = {184, 152, 200, 168};
-	rcLeft[1] = {200, 152, 216, 168};
+	RECT rcRight[2] = {
+		{184, 168, 200, 184},
+		{200, 168, 216, 184},
+	};
 
-	rcRight[0] = {184, 168, 200, 184};
-	rcRight[1] = {200, 168, 216, 184};
-
 	if (npc->pNpc)
 	{
 		if (npc->pNpc->ani_no < 5)
@@ -506,11 +509,11 @@
 //Curly Air Tank Bubble
 void ActNpc183(NPCHAR *npc)
 {
-	RECT rect[2];
+	RECT rect[2] = {
+		{56, 96, 80, 120},
+		{80, 96, 104, 120},
+	};
 
-	rect[0] = {56, 96, 80, 120};
-	rect[1] = {80, 96, 104, 120};
-
 	if (npc->pNpc)
 	{
 		if (npc->act_no == 0)
@@ -546,11 +549,12 @@
 //Shutter Big
 void ActNpc184(NPCHAR *npc)
 {
-	RECT rc[4];
-	rc[0] = {0, 64, 32, 96};
-	rc[1] = {32, 64, 64, 96};
-	rc[2] = {64, 64, 96, 96};
-	rc[3] = {32, 64, 64, 96};
+	RECT rc[4] = {
+		{0, 64, 32, 96},
+		{32, 64, 64, 96},
+		{64, 64, 96, 96},
+		{32, 64, 64, 96},
+	};
 	
 	switch (npc->act_no)
 	{
@@ -609,6 +613,8 @@
 //Shutter Small
 void ActNpc185(NPCHAR *npc)
 {
+	RECT rc = {96, 64, 112, 96};
+
 	switch (npc->act_no)
 	{
 		case 0:
@@ -639,27 +645,24 @@
 			}
 			++npc->act_wait;
 			break;
-		case 0x14:
+		case 20:
 			npc->y -= 0x3000;
 			npc->act_no = 1;
 			break;
-		default:
-			break;
 	}
-	npc->rect.left = 96;
-	npc->rect.top = 64;
-	npc->rect.right = 112;
-	npc->rect.bottom = 96;
+
+	npc->rect = rc;
 }
 
 //Lift block
 void ActNpc186(NPCHAR *npc)
 {
-	RECT rc[4];
-	rc[0] = {48, 48, 64, 64};
-	rc[1] = {64, 48, 80, 64};
-	rc[2] = {80, 48, 96, 64};
-	rc[3] = {64, 48, 80, 64};
+	RECT rc[4] = {
+		{48, 48, 64, 64},
+		{64, 48, 80, 64},
+		{80, 48, 96, 64},
+		{64, 48, 80, 64},
+	};
 	
 	switch (npc->act_no)
 	{
@@ -755,15 +758,16 @@
 	npc->x += npc->xm;
 	npc->y += npc->ym;
 
-	RECT rect_left[2];
-	RECT rect_right[2];
+	RECT rect_left[2] = {
+		{224, 104, 256, 136},
+		{256, 104, 288, 136},
+	};
 
-	rect_left[0] = {224, 104, 256, 136};
-	rect_left[1] = {256, 104, 288, 136};
+	RECT rect_right[2] = {
+		{224, 136, 256, 168},
+		{256, 136, 288, 168},
+	};
 
-	rect_right[0] = {224, 136, 256, 168};
-	rect_right[1] = {256, 136, 288, 168};
-
 	if (++npc->ani_wait > 2)
 	{
 		npc->ani_wait = 0;
@@ -782,9 +786,6 @@
 //Fuzz
 void ActNpc188(NPCHAR *npc)
 {
-	RECT rect_left[2];
-	RECT rect_right[2];
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -848,11 +849,15 @@
 	if (npc->ani_no > 1)
 		npc->ani_no = 0;
 
-	rect_left[0] = {288, 104, 304, 120};
-	rect_left[1] = {304, 104, 320, 120};
+	RECT rect_left[2] = {
+		{288, 104, 304, 120},
+		{304, 104, 320, 120},
+	};
 
-	rect_right[0] = {288, 120, 304, 136};
-	rect_right[1] = {304, 120, 320, 136};
+	RECT rect_right[2] = {
+		{288, 120, 304, 136},
+		{304, 120, 320, 136},
+	};
 
 	if (npc->direct == 0)
 		npc->rect = rect_left[npc->ani_no];
@@ -917,12 +922,12 @@
 	if (npc->ani_no > 2)
 		npc->ani_no = 0;
 
-	RECT rect[3];
+	RECT rect[3] = {
+		{224, 184, 232, 200},
+		{232, 184, 240, 200},
+		{240, 184, 248, 200},
+	};
 
-	rect[0] = {224, 184, 232, 200};
-	rect[1] = {232, 184, 240, 200};
-	rect[2] = {240, 184, 248, 200};
-
 	npc->rect = rect[npc->ani_no];
 }
 
@@ -929,9 +934,10 @@
 //Broken robot
 void ActNpc190(NPCHAR *npc)
 {
-	RECT rect[2];
-	rect[0] = {192, 32, 208, 48};
-	rect[1] = {208, 32, 224, 48};
+	RECT rect[2] = {
+		{192, 32, 208, 48},
+		{208, 32, 224, 48},
+	};
 	
 	switch (npc->act_no)
 	{
@@ -1119,15 +1125,16 @@
 			SetCaret(npc->x - 5120, npc->y + 5120, 7, 0);
 	}
 
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{224, 64, 256, 80},
+		{256, 64, 288, 96},
+	};
 
-	rcLeft[0] = {224, 64, 256, 80};
-	rcLeft[1] = {256, 64, 288, 96};
+	RECT rcRight[2] = {
+		{224, 80, 256, 96},
+		{288, 64, 320, 96},
+	};
 
-	rcRight[0] = {224, 80, 256, 96};
-	rcRight[1] = {288, 64, 320, 96};
-
 	if (npc->direct == 0)
 		npc->rect = rcLeft[npc->ani_no];
 	else
@@ -1137,10 +1144,8 @@
 //Scooter (broken)
 void ActNpc193(NPCHAR *npc)
 {
-	RECT rc[1];
+	RECT rc = {256, 96, 320, 112};
 
-	rc[0] = {256, 96, 320, 112};
-
 	if (npc->act_no == 0)
 	{
 		npc->act_no = 1;
@@ -1148,16 +1153,14 @@
 		npc->x += 0x3000;
 	}
 
-	npc->rect = rc[0];
+	npc->rect = rc;
 }
 
 //Blue robot (broken)
 void ActNpc194(NPCHAR *npc)
 {
-	RECT rc[1];
+	RECT rc = {192, 120, 224, 128};
 
-	rc[0] = {192, 120, 224, 128};
-
 	if (npc->act_no == 0)
 	{
 		npc->act_no = 1;
@@ -1164,7 +1167,7 @@
 		npc->y += 0x800;
 	}
 
-	npc->rect = rc[0];
+	npc->rect = rc;
 }
 
 //Grate
@@ -1194,13 +1197,13 @@
 //Porcupine Fish
 void ActNpc197(NPCHAR *npc)
 {
-	RECT rc[4];
+	RECT rc[4] = {
+		{0, 0, 16, 16},
+		{16, 0, 32, 16},
+		{32, 0, 48, 16},
+		{48, 0, 64, 16},
+	};
 
-	rc[0] = {0, 0, 16, 16};
-	rc[1] = {16, 0, 32, 16};
-	rc[2] = {32, 0, 48, 16};
-	rc[3] = {48, 0, 64, 16};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1264,12 +1267,12 @@
 //Ironhead projectile
 void ActNpc198(NPCHAR *npc)
 {
-	RECT rcRight[3];
+	RECT rcRight[3] = {
+		{208, 48, 224, 72},
+		{224, 48, 240, 72},
+		{240, 48, 256, 72},
+	};
 
-	rcRight[0] = {208, 48, 224, 72};
-	rcRight[1] = {224, 48, 240, 72};
-	rcRight[2] = {240, 48, 256, 72};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1312,13 +1315,13 @@
 //Water/wind particles
 void ActNpc199(NPCHAR *npc)
 {
-	RECT rect[5];
-
-	rect[0] = {72, 16, 74, 18};
-	rect[1] = {74, 16, 76, 18};
-	rect[2] = {76, 16, 78, 18};
-	rect[3] = {78, 16, 80, 18};
-	rect[4] = {80, 16, 82, 18};
+	RECT rect[5] = {
+		{72, 16, 74, 18},
+		{74, 16, 76, 18},
+		{76, 16, 78, 18},
+		{78, 16, 80, 18},
+		{80, 16, 82, 18},
+	};
 
 	if (npc->act_no == 0)
 	{
--- a/src/NpcAct200.cpp
+++ b/src/NpcAct200.cpp
@@ -15,23 +15,24 @@
 //Dragon Zombie
 void ActNpc200(NPCHAR *npc)
 {
-	RECT rcLeft[6];
-	RECT rcRight[6];
+	RECT rcLeft[6] = {
+		{0, 0, 40, 40},
+		{40, 0, 80, 40},
+		{80, 0, 120, 40},
+		{120, 0, 160, 40},
+		{160, 0, 200, 40},
+		{200, 0, 240, 40},
+	};
 
-	rcLeft[0] = {0, 0, 40, 40};
-	rcLeft[1] = {40, 0, 80, 40};
-	rcLeft[2] = {80, 0, 120, 40};
-	rcLeft[3] = {120, 0, 160, 40};
-	rcLeft[4] = {160, 0, 200, 40};
-	rcLeft[5] = {200, 0, 240, 40};
+	RECT rcRight[6] = {
+		{0, 40, 40, 80},
+		{40, 40, 80, 80},
+		{80, 40, 120, 80},
+		{120, 40, 160, 80},
+		{160, 40, 200, 80},
+		{200, 40, 240, 80},
+	};
 
-	rcRight[0] = {0, 40, 40, 80};
-	rcRight[1] = {40, 40, 80, 80};
-	rcRight[2] = {80, 40, 120, 80};
-	rcRight[3] = {120, 40, 160, 80};
-	rcRight[4] = {160, 40, 200, 80};
-	rcRight[5] = {200, 40, 240, 80};
-
 	if (npc->act_no < 100 && npc->life < 950)
 	{
 		PlaySoundObject(72, 1);
@@ -132,12 +133,9 @@
 //Dragon Zombie (dead)
 void ActNpc201(NPCHAR *npc)
 {
-	RECT rcLeft[1];
-	RECT rcRight[1];
+	RECT rcLeft[1] = {200, 0, 240, 40};
+	RECT rcRight[1] = {200, 40, 240, 80};
 
-	rcLeft[0] = {200, 0, 240, 40};
-	rcRight[0] = {200, 40, 240, 80};
-
 	if (npc->direct == 0)
 		npc->rect = rcLeft[npc->ani_no];
 	else
@@ -147,8 +145,6 @@
 //Dragon Zombie projectile
 void ActNpc202(NPCHAR *npc)
 {
-	RECT rect_left[3];
-
 	if (npc->flag & 0xFF)
 	{
 		npc->cond = 0;
@@ -158,9 +154,11 @@
 	npc->y += npc->ym;
 	npc->x += npc->xm;
 
-	rect_left[0] = {184, 216, 200, 240};
-	rect_left[1] = {200, 216, 216, 240};
-	rect_left[2] = {216, 216, 232, 240};
+	RECT rect_left[3] = {
+		{184, 216, 200, 240},
+		{200, 216, 216, 240},
+		{216, 216, 232, 240},
+	};
 
 	if (++npc->ani_wait > 1)
 	{
@@ -183,17 +181,18 @@
 //Critter (destroyed Egg Corridor)
 void ActNpc203(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{0, 80, 16, 96},
+		{16, 80, 32, 96},
+		{32, 80, 48, 96},
+	};
 
-	rcLeft[0] = {0, 80, 16, 96};
-	rcLeft[1] = {16, 80, 32, 96};
-	rcLeft[2] = {32, 80, 48, 96};
+	RECT rcRight[3] = {
+		{0, 96, 16, 112},
+		{16, 96, 32, 112},
+		{32, 96, 48, 112},
+	};
 
-	rcRight[0] = {0, 96, 16, 112};
-	rcRight[1] = {16, 96, 32, 112};
-	rcRight[2] = {32, 96, 48, 112};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -282,11 +281,11 @@
 //Falling spike (small)
 void ActNpc204(NPCHAR *npc)
 {
-	RECT rc[2]; // [sp+4h] [bp-20h]@1
+	RECT rc[2] = {
+		{240, 80, 256, 96},
+		{240, 144, 256, 160},
+	};
 
-	rc[0] = {240, 80, 256, 96};
-	rc[1] = {240, 144, 256, 160};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -338,11 +337,11 @@
 //Falling spike (large)
 void ActNpc205(NPCHAR *npc)
 {
-	RECT rc[2];
+	RECT rc[2] = {
+		{112, 80, 128, 112},
+		{128, 80, 144, 112},
+	};
 
-	rc[0] = {112, 80, 128, 112};
-	rc[1] = {128, 80, 144, 112};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -421,8 +420,6 @@
 //Counter Bomb
 void ActNpc206(NPCHAR *npc)
 {
-	RECT rect_left[3];
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -513,9 +510,11 @@
 	npc->x += npc->xm;
 	npc->y += npc->ym;
 
-	rect_left[0] = {80, 80, 120, 120};
-	rect_left[1] = {120, 80, 160, 120};
-	rect_left[2] = {160, 80, 200, 120};
+	RECT rect_left[3] = {
+		{80, 80, 120, 120},
+		{120, 80, 160, 120},
+		{160, 80, 200, 120},
+	};
 
 	if (++npc->ani_wait > 4)
 	{
@@ -532,14 +531,14 @@
 //Counter Bomb's countdown
 void ActNpc207(NPCHAR *npc)
 {
-	RECT rc[5];
+	RECT rc[5] = {
+		{0, 144, 16, 160},
+		{16, 144, 32, 160},
+		{32, 144, 48, 160},
+		{48, 144, 64, 160},
+		{64, 144, 80, 160},
+	};
 
-	rc[0] = {0, 144, 16, 160};
-	rc[1] = {16, 144, 32, 160};
-	rc[2] = {32, 144, 48, 160};
-	rc[3] = {48, 144, 64, 160};
-	rc[4] = {64, 144, 80, 160};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -574,17 +573,18 @@
 //Basu (destroyed Egg Corridor)
 void ActNpc208(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{248, 80, 272, 104},
+		{272, 80, 296, 104},
+		{296, 80, 320, 104},
+	};
 
-	rcLeft[0] = {248, 80, 272, 104};
-	rcLeft[1] = {272, 80, 296, 104};
-	rcLeft[2] = {296, 80, 320, 104};
+	RECT rcRight[3] = {
+		{248, 104, 272, 128},
+		{272, 104, 296, 128},
+		{296, 104, 320, 128},
+	};
 
-	rcRight[0] = {248, 104, 272, 128};
-	rcRight[1] = {272, 104, 296, 128};
-	rcRight[2] = {296, 104, 320, 128};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -733,13 +733,13 @@
 	npc->y += npc->ym;
 	npc->x += npc->xm;
 
-	RECT rect_left[4];
+	RECT rect_left[4] = {
+		{232, 96, 248, 112},
+		{200, 112, 216, 128},
+		{216, 112, 232, 128},
+		{232, 112, 248, 128},
+	};
 
-	rect_left[0] = {232, 96, 248, 112};
-	rect_left[1] = {200, 112, 216, 128};
-	rect_left[2] = {216, 112, 232, 128};
-	rect_left[3] = {232, 112, 248, 128};
-
 	if (++npc->ani_wait > 2)
 	{
 		npc->ani_wait = 0;
@@ -761,15 +761,16 @@
 //Beetle (destroyed Egg Corridor)
 void ActNpc210(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{0, 112, 16, 128},
+		{16, 112, 32, 128},
+	};
 
-	rcLeft[0] = {0, 112, 16, 128};
-	rcLeft[1] = {16, 112, 32, 128};
+	RECT rcRight[2] = {
+		{32, 112, 48, 128},
+		{48, 112, 64, 128},
+	};
 
-	rcRight[0] = {32, 112, 48, 128};
-	rcRight[1] = {48, 112, 64, 128};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -861,13 +862,13 @@
 //Spikes (small)
 void ActNpc211(NPCHAR *npc)
 {
-	RECT rects[4];
+	RECT rects[4] = {
+		{256, 200, 272, 216},
+		{272, 200, 288, 216},
+		{288, 200, 304, 216},
+		{304, 200, 320, 216},
+	};
 
-	rects[0] = {256, 200, 272, 216};
-	rects[1] = {272, 200, 288, 216};
-	rects[2] = {288, 200, 304, 216};
-	rects[3] = {304, 200, 320, 216};
-
 	npc->rect = rects[npc->code_event];
 }
 
@@ -874,13 +875,13 @@
 //Sky Dragon
 void ActNpc212(NPCHAR *npc)
 {
-	RECT rcRight[4];
+	RECT rcRight[4] = {
+		{160, 152, 200, 192},
+		{200, 152, 240, 192},
+		{240, 112, 280, 152},
+		{280, 112, 320, 152},
+	};
 
-	rcRight[0] = {160, 152, 200, 192};
-	rcRight[1] = {200, 152, 240, 192};
-	rcRight[2] = {240, 112, 280, 152};
-	rcRight[3] = {280, 112, 320, 152};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -985,19 +986,19 @@
 //Night Spirit
 void ActNpc213(NPCHAR *npc)
 {
-	RECT rect[10];
+	RECT rect[10] = {
+		{0, 0, 0, 0},
+		{0, 0, 48, 48},
+		{48, 0, 96, 48},
+		{96, 0, 144, 48},
+		{144, 0, 192, 48},
+		{192, 0, 240, 48},
+		{240, 0, 288, 48},
+		{0, 48, 48, 96},
+		{48, 48, 96, 96},
+		{96, 48, 144, 96},
+	};
 
-	rect[0] = {0, 0, 0, 0};
-	rect[1] = {0, 0, 48, 48};
-	rect[2] = {48, 0, 96, 48};
-	rect[3] = {96, 0, 144, 48};
-	rect[4] = {144, 0, 192, 48};
-	rect[5] = {192, 0, 240, 48};
-	rect[6] = {240, 0, 288, 48};
-	rect[7] = {0, 48, 48, 96};
-	rect[8] = {48, 48, 96, 96};
-	rect[9] = {96, 48, 144, 96};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1151,12 +1152,12 @@
 //Night Spirit projectile
 void ActNpc214(NPCHAR *npc)
 {
-	RECT rect[3];
+	RECT rect[3] = {
+		{144, 48, 176, 64},
+		{176, 48, 208, 64},
+		{208, 48, 240, 64},
+	};
 
-	rect[0] = {144, 48, 176, 64};
-	rect[1] = {176, 48, 208, 64};
-	rect[2] = {208, 48, 240, 64};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1288,14 +1289,14 @@
 			break;
 	}
 
-	RECT rect[5];
+	RECT rect[5] = {
+		{0, 0, 0, 0},
+		{0, 96, 48, 128},
+		{48, 96, 96, 128},
+		{96, 96, 144, 128},
+		{144, 96, 192, 128},
+	};
 
-	rect[0] = {0, 0, 0, 0};
-	rect[1] = {0, 96, 48, 128};
-	rect[2] = {48, 96, 96, 128};
-	rect[3] = {96, 96, 144, 128};
-	rect[4] = {144, 96, 192, 128};
-
 	npc->rect = rect[npc->ani_no];
 }
 
@@ -1310,17 +1311,17 @@
 //Itoh
 void ActNpc217(NPCHAR *npc)
 {
-	RECT rect[8];
+	RECT rect[8] = {
+		{144, 64, 160, 80},
+		{160, 64, 176, 80},
+		{176, 64, 192, 80},
+		{192, 64, 208, 80},
+		{144, 80, 160, 96},
+		{160, 80, 176, 96},
+		{144, 80, 160, 96},
+		{176, 80, 192, 96},
+	};
 
-	rect[0] = {144, 64, 160, 80};
-	rect[1] = {160, 64, 176, 80};
-	rect[2] = {176, 64, 192, 80};
-	rect[3] = {192, 64, 208, 80};
-	rect[4] = {144, 80, 160, 96};
-	rect[5] = {160, 80, 176, 96};
-	rect[6] = {144, 80, 160, 96};
-	rect[7] = {176, 80, 192, 96};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1436,11 +1437,11 @@
 // Core giant energy ball projectile
 void ActNpc218(NPCHAR *npc)
 {
-	RECT rc[2];
+	RECT rc[2] = {
+		{256, 120, 288, 152},
+		{288, 120, 320, 152},
+	};
 
-	rc[0] = {256, 120, 288, 152};
-	rc[1] = {288, 120, 320, 152};
-
 	npc->x += npc->xm;
 	npc->y += npc->ym;
 
@@ -1462,14 +1463,12 @@
 //Smoke generator
 void ActNpc219(NPCHAR *npc)
 {
-	RECT rc[1];
+	RECT rc = {0, 0, 0, 0};
 
-	rc[0] = {0, 0, 0, 0};
-
-	if ( npc->direct )
+	if (npc->direct)
 		SetNpChar(199, npc->x + (Random(-0xA0, 0xA0) * 0x200), npc->y + (Random(-0x80, 0x80) * 0x200), 0, 0, 2, 0, 0x100);
 	else if (Random(0, 40) == 1)
 		SetNpChar(4, npc->x + (Random(-20, 20) * 0x200), npc->y, 0, -0x200, 0, 0, 0x100);
 
-	npc->rect = rc[0];
+	npc->rect = rc;
 }
--- a/src/NpcAct220.cpp
+++ b/src/NpcAct220.cpp
@@ -15,15 +15,16 @@
 //Shovel Brigade
 void ActNpc220(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{0, 64, 16, 80},
+		{16, 64, 32, 80},
+	};
 
-	rcLeft[0] = {0, 64, 16, 80};
-	rcLeft[1] = {16, 64, 32, 80};
+	RECT rcRight[2] = {
+		{0, 80, 16, 96},
+		{16, 80, 32, 96},
+	};
 
-	rcRight[0] = {0, 80, 16, 96};
-	rcRight[1] = {16, 80, 32, 96};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -60,23 +61,24 @@
 //Shovel Brigade (walking)
 void ActNpc221(NPCHAR *npc)
 {
-	RECT rcLeft[6];
-	RECT rcRight[6];
+	RECT rcLeft[6] = {
+		{0, 64, 16, 80},
+		{16, 64, 32, 80},
+		{32, 64, 48, 80},
+		{0, 64, 16, 80},
+		{48, 64, 64, 80},
+		{0, 64, 16, 80},
+	};
 
-	rcLeft[0] = {0, 64, 16, 80};
-	rcLeft[1] = {16, 64, 32, 80};
-	rcLeft[2] = {32, 64, 48, 80};
-	rcLeft[3] = {0, 64, 16, 80};
-	rcLeft[4] = {48, 64, 64, 80};
-	rcLeft[5] = {0, 64, 16, 80};
+	RECT rcRight[6] = {
+		{0, 80, 16, 96},
+		{16, 80, 32, 96},
+		{32, 80, 48, 96},
+		{0, 80, 16, 96},
+		{48, 80, 64, 96},
+		{0, 80, 16, 96},
+	};
 
-	rcRight[0] = {0, 80, 16, 96};
-	rcRight[1] = {16, 80, 32, 96};
-	rcRight[2] = {32, 80, 48, 96};
-	rcRight[3] = {0, 80, 16, 96};
-	rcRight[4] = {48, 80, 64, 96};
-	rcRight[5] = {0, 80, 16, 96};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -178,17 +180,18 @@
 //Momorin
 void ActNpc223(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{80, 192, 96, 216},
+		{96, 192, 112, 216},
+		{112, 192, 128, 216},
+	};
 
-	rcLeft[0] = {80, 192, 96, 216};
-	rcLeft[1] = {96, 192, 112, 216};
-	rcLeft[2] = {112, 192, 128, 216};
+	RECT rcRight[3] = {
+		{80, 216, 96, 240},
+		{96, 216, 112, 240},
+		{112, 216, 128, 240},
+	};
 
-	rcRight[0] = {80, 216, 96, 240};
-	rcRight[1] = {96, 216, 112, 240};
-	rcRight[2] = {112, 216, 128, 240};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -237,15 +240,16 @@
 //Chie
 void ActNpc224(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{112, 32, 128, 48},
+		{128, 32, 144, 48},
+	};
 
-	rcLeft[0] = {112, 32, 128, 48};
-	rcLeft[1] = {128, 32, 144, 48};
+	RECT rcRight[2] = {
+		{112, 48, 128, 64},
+		{128, 48, 144, 64},
+	};
 
-	rcRight[0] = {112, 48, 128, 64};
-	rcRight[1] = {128, 48, 144, 64};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -290,15 +294,16 @@
 //Megane
 void ActNpc225(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{64, 64, 80, 80},
+		{80, 64, 96, 80},
+	};
 
-	rcLeft[0] = {64, 64, 80, 80};
-	rcLeft[1] = {80, 64, 96, 80};
+	RECT rcRight[2] = {
+		{64, 80, 80, 96},
+		{80, 80, 96, 96},
+	};
 
-	rcRight[0] = {64, 80, 80, 96};
-	rcRight[1] = {80, 80, 96, 96};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -335,16 +340,16 @@
 //Kanpachi
 void ActNpc226(NPCHAR *npc)
 {
-	RECT rcRight[7];
+	RECT rcRight[7] = {
+		{256, 56, 272, 80},
+		{272, 56, 288, 80},
+		{288, 56, 304, 80},
+		{256, 56, 272, 80},
+		{304, 56, 320, 80},
+		{256, 56, 272, 80},
+		{240, 56, 256, 80},
+	};
 
-	rcRight[0] = {256, 56, 272, 80};
-	rcRight[1] = {272, 56, 288, 80};
-	rcRight[2] = {288, 56, 304, 80};
-	rcRight[3] = {256, 56, 272, 80};
-	rcRight[4] = {304, 56, 320, 80};
-	rcRight[5] = {256, 56, 272, 80};
-	rcRight[6] = {240, 56, 256, 80};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -418,19 +423,20 @@
 //Droll (guard)
 void ActNpc228(NPCHAR *npc)
 {
-	RECT rcLeft[4];
-	RECT rcRight[4];
+	RECT rcLeft[4] = {
+		{0, 0, 32, 40},
+		{32, 0, 64, 40},
+		{64, 0, 96, 40},
+		{96, 0, 128, 40},
+	};
 
-	rcLeft[0] = {0, 0, 32, 40};
-	rcLeft[1] = {32, 0, 64, 40};
-	rcLeft[2] = {64, 0, 96, 40};
-	rcLeft[3] = {96, 0, 128, 40};
+	RECT rcRight[4] = {
+		{0, 40, 32, 80},
+		{32, 40, 64, 80},
+		{64, 40, 96, 80},
+		{96, 40, 128, 80},
+	};
 
-	rcRight[0] = {0, 40, 32, 80};
-	rcRight[1] = {32, 40, 64, 80};
-	rcRight[2] = {64, 40, 96, 80};
-	rcRight[3] = {96, 40, 128, 80};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -514,11 +520,11 @@
 //Red Flowers (sprouts)
 void ActNpc229(NPCHAR *npc)
 {
-	RECT rc[2];
+	RECT rc[2] = {
+		{0, 96, 48, 112},
+		{0, 112, 48, 128},
+	};
 
-	rc[0] = {0, 96, 48, 112};
-	rc[1] = {0, 112, 48, 128};
-
 	if (npc->act_no == 0)
 	{
 		npc->act_no = 1;
@@ -534,11 +540,11 @@
 //Red Flowers (blooming)
 void ActNpc230(NPCHAR *npc)
 {
-	RECT rc[2];
+	RECT rc[2] = {
+		{48, 96, 96, 128},
+		{96, 96, 144, 128},
+	};
 
-	rc[0] = {48, 96, 96, 128};
-	rc[1] = {96, 96, 144, 128};
-
 	if (npc->act_no == 0)
 	{
 		npc->act_no = 1;
@@ -555,11 +561,11 @@
 //Rocket
 void ActNpc231(NPCHAR *npc)
 {
-	RECT rc[2];
+	RECT rc[2] = {
+		{176, 32, 208, 48},
+		{176, 48, 208, 64},
+	};
 
-	rc[0] = {176, 32, 208, 48};
-	rc[1] = {176, 48, 208, 64};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -712,17 +718,18 @@
 	npc->y += npc->ym;
 	npc->x += npc->xm;
 
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{128, 0, 160, 32},
+		{160, 0, 192, 32},
+		{192, 0, 224, 32},
+	};
 
-	rcLeft[0] = {128, 0, 160, 32};
-	rcLeft[1] = {160, 0, 192, 32};
-	rcLeft[2] = {192, 0, 224, 32};
+	RECT rcRight[3] = {
+		{128, 32, 160, 64},
+		{160, 32, 192, 64},
+		{192, 32, 224, 64},
+	};
 
-	rcRight[0] = {128, 32, 160, 64};
-	rcRight[1] = {160, 32, 192, 64};
-	rcRight[2] = {192, 32, 224, 64};
-
 	if (npc->direct == 0)
 		npc->rect = rcLeft[npc->ani_no];
 	else
@@ -810,19 +817,20 @@
 	npc->x += npc->xm;
 	npc->y += npc->ym;
 
-	RECT rcLeft[4];
-	RECT rcRight[4];
+	RECT rcLeft[4] = {
+		{256, 0, 272, 16},
+		{272, 0, 288, 16},
+		{288, 0, 304, 16},
+		{304, 0, 320, 16},
+	};
 
-	rcLeft[0] = {256, 0, 272, 16};
-	rcLeft[1] = {272, 0, 288, 16};
-	rcLeft[2] = {288, 0, 304, 16};
-	rcLeft[3] = {304, 0, 320, 16};
+	RECT rcRight[4] = {
+		{256, 16, 272, 32},
+		{272, 16, 288, 32},
+		{288, 16, 304, 32},
+		{304, 16, 320, 32},
+	};
 
-	rcRight[0] = {256, 16, 272, 32};
-	rcRight[1] = {272, 16, 288, 32};
-	rcRight[2] = {288, 16, 304, 32};
-	rcRight[3] = {304, 16, 320, 32};
-
 	if (npc->act_no == 3)
 	{
 		npc->ani_no = 3;
@@ -839,7 +847,7 @@
 			npc->ani_no = 0;
 	}
 
-	if ( npc->direct == 0)
+	if (npc->direct == 0)
 		npc->rect = rcLeft[npc->ani_no];
 	else
 		npc->rect = rcRight[npc->ani_no];
@@ -848,11 +856,11 @@
 //Red Flowers (picked)
 void ActNpc234(NPCHAR *npc)
 {
-	RECT rc[2];
+	RECT rc[2] = {
+		{144, 96, 192, 112},
+		{144, 112, 192, 128},
+	};
 
-	rc[0] = {144, 96, 192, 112};
-	rc[1] = {144, 112, 192, 128};
-
 	if (npc->act_no == 0)
 	{
 		npc->act_no = 1;
@@ -868,19 +876,20 @@
 //Midorin
 void ActNpc235(NPCHAR *npc)
 {
-	RECT rcLeft[4];
-	RECT rcRight[4];
+	RECT rcLeft[4] = {
+		{192, 96, 208, 112},
+		{208, 96, 224, 112},
+		{224, 96, 240, 112},
+		{192, 96, 208, 112},
+	};
 
-	rcLeft[0] = {192, 96, 208, 112};
-	rcLeft[1] = {208, 96, 224, 112};
-	rcLeft[2] = {224, 96, 240, 112};
-	rcLeft[3] = {192, 96, 208, 112};
+	RECT rcRight[4] = {
+		{192, 112, 208, 128},
+		{208, 112, 224, 128},
+		{224, 112, 240, 128},
+		{192, 112, 208, 128},
+	};
 
-	rcRight[0] = {192, 112, 208, 128};
-	rcRight[1] = {208, 112, 224, 128};
-	rcRight[2] = {224, 112, 240, 128};
-	rcRight[3] = {192, 112, 208, 128};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -973,23 +982,24 @@
 //Gunfish
 void ActNpc236(NPCHAR *npc)
 {
-	RECT rcLeft[6];
-	RECT rcRight[6];
+	RECT rcLeft[6] = {
+		{128, 64, 152, 88},
+		{152, 64, 176, 88},
+		{176, 64, 200, 88},
+		{200, 64, 224, 88},
+		{224, 64, 248, 88},
+		{248, 64, 272, 88},
+	};
 
-	rcLeft[0] = {128, 64, 152, 88};
-	rcLeft[1] = {152, 64, 176, 88};
-	rcLeft[2] = {176, 64, 200, 88};
-	rcLeft[3] = {200, 64, 224, 88};
-	rcLeft[4] = {224, 64, 248, 88};
-	rcLeft[5] = {248, 64, 272, 88};
+	RECT rcRight[6] = {
+		{128, 88, 152, 112},
+		{152, 88, 176, 112},
+		{176, 88, 200, 112},
+		{200, 88, 224, 112},
+		{224, 88, 248, 112},
+		{248, 88, 272, 112},
+	};
 
-	rcRight[0] = {128, 88, 152, 112};
-	rcRight[1] = {152, 88, 176, 112};
-	rcRight[2] = {176, 88, 200, 112};
-	rcRight[3] = {200, 88, 224, 112};
-	rcRight[4] = {224, 88, 248, 112};
-	rcRight[5] = {248, 88, 272, 112};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1147,11 +1157,11 @@
 // Press (sideways)
 void ActNpc238(NPCHAR *npc)
 {
-	RECT rc[3];
-
-	rc[0] = {184, 200, 208, 216};
-	rc[1] = {208, 200, 232, 216};
-	rc[2] = {232, 200, 256, 216};
+	RECT rc[3] = {
+		{184, 200, 208, 216},
+		{208, 200, 232, 216},
+		{232, 200, 256, 216},
+	};
 
 	switch (npc->act_no)
 	{
--- a/src/NpcAct240.cpp
+++ b/src/NpcAct240.cpp
@@ -15,23 +15,24 @@
 //Mimiga (jailed)
 void ActNpc240(NPCHAR *npc)
 {
-	RECT rcLeft[6];
-	RECT rcRight[6];
+	RECT rcLeft[6] = {
+		{160, 64, 176, 80},
+		{176, 64, 192, 80},
+		{192, 64, 208, 80},
+		{160, 64, 176, 80},
+		{208, 64, 224, 80},
+		{160, 64, 176, 80},
+	};
 
-	rcLeft[0] = {160, 64, 176, 80};
-	rcLeft[1] = {176, 64, 192, 80};
-	rcLeft[2] = {192, 64, 208, 80};
-	rcLeft[3] = {160, 64, 176, 80};
-	rcLeft[4] = {208, 64, 224, 80};
-	rcLeft[5] = {160, 64, 176, 80};
+	RECT rcRight[6] = {
+		{160, 80, 176, 96},
+		{176, 80, 192, 96},
+		{192, 80, 208, 96},
+		{160, 80, 176, 96},
+		{208, 80, 224, 96},
+		{160, 80, 176, 96},
+	};
 
-	rcRight[0] = {160, 80, 176, 96};
-	rcRight[1] = {176, 80, 192, 96};
-	rcRight[2] = {192, 80, 208, 96};
-	rcRight[3] = {160, 80, 176, 96};
-	rcRight[4] = {208, 80, 224, 96};
-	rcRight[5] = {160, 80, 176, 96};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -119,17 +120,18 @@
 //Critter (Last Cave)
 void ActNpc241(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{0, 0, 16, 16},
+		{16, 0, 32, 16},
+		{32, 0, 48, 16},
+	};
 
-	rcLeft[0] = {0, 0, 16, 16};
-	rcLeft[1] = {16, 0, 32, 16};
-	rcLeft[2] = {32, 0, 48, 16};
+	RECT rcRight[3] = {
+		{0, 16, 16, 32},
+		{16, 16, 32, 32},
+		{32, 16, 48, 32},
+	};
 
-	rcRight[0] = {0, 16, 16, 32};
-	rcRight[1] = {16, 16, 32, 32};
-	rcRight[2] = {32, 16, 48, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -261,19 +263,20 @@
 	npc->x += npc->xm;
 	npc->y += npc->ym;
 
-	RECT rect_left[4];
-	RECT rect_right[4];
+	RECT rect_left[4] = {
+		{32, 32, 48, 48},
+		{48, 32, 64, 48},
+		{64, 32, 80, 48},
+		{80, 32, 96, 48},
+	};
 
-	rect_left[0] = {32, 32, 48, 48};
-	rect_left[1] = {48, 32, 64, 48};
-	rect_left[2] = {64, 32, 80, 48};
-	rect_left[3] = {80, 32, 96, 48};
+	RECT rect_right[4] = {
+		{32, 48, 48, 64},
+		{48, 48, 64, 64},
+		{64, 48, 80, 64},
+		{80, 48, 96, 64},
+	};
 
-	rect_right[0] = {32, 48, 48, 64};
-	rect_right[1] = {48, 48, 64, 64};
-	rect_right[2] = {64, 48, 80, 64};
-	rect_right[3] = {80, 48, 96, 64};
-
 	if (++npc->ani_wait > 1)
 	{
 		npc->ani_wait = 0;
@@ -350,13 +353,13 @@
 //Lava drop generator
 void ActNpc245(NPCHAR *npc)
 {
-	RECT rc[4];
+	RECT rc[4] = {
+		{0, 0, 0, 0},
+		{104, 0, 112, 16},
+		{112, 0, 120, 16},
+		{120, 0, 128, 16},
+	};
 
-	rc[0] = {0, 0, 0, 0};
-	rc[1] = {104, 0, 112, 16};
-	rc[2] = {112, 0, 120, 16};
-	rc[3] = {120, 0, 128, 16};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -406,12 +409,12 @@
 //Press (proximity)
 void ActNpc246(NPCHAR *npc)
 {
-	RECT rcLeft[3];
+	RECT rcLeft[3] = {
+		{144, 112, 160, 136},
+		{160, 112, 176, 136},
+		{176, 112, 192, 136},
+	};
 
-	rcLeft[0] = {144, 112, 160, 136};
-	rcLeft[1] = {160, 112, 176, 136};
-	rcLeft[2] = {176, 112, 192, 136};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -491,29 +494,30 @@
 //Misery (boss)
 void ActNpc247(NPCHAR *npc)
 {
-	RECT rcLeft[9];
-	RECT rcRight[9];
+	RECT rcLeft[9] = {
+		{0, 0, 16, 16},
+		{16, 0, 32, 16},
+		{32, 0, 48, 16},
+		{48, 0, 64, 16},
+		{64, 0, 80, 16},
+		{80, 0, 96, 16},
+		{96, 0, 112, 16},
+		{0, 0, 0, 0},
+		{112, 0, 128, 16},
+	};
 
-	rcLeft[0] = {0, 0, 16, 16};
-	rcLeft[1] = {16, 0, 32, 16};
-	rcLeft[2] = {32, 0, 48, 16};
-	rcLeft[3] = {48, 0, 64, 16};
-	rcLeft[4] = {64, 0, 80, 16};
-	rcLeft[5] = {80, 0, 96, 16};
-	rcLeft[6] = {96, 0, 112, 16};
-	rcLeft[7] = {0, 0, 0, 0};
-	rcLeft[8] = {112, 0, 128, 16};
+	RECT rcRight[9] = {
+		{0, 16, 16, 32},
+		{16, 16, 32, 32},
+		{32, 16, 48, 32},
+		{48, 16, 64, 32},
+		{64, 16, 80, 32},
+		{80, 16, 96, 32},
+		{96, 16, 112, 32},
+		{0, 0, 0, 0},
+		{112, 16, 128, 32},
+	};
 
-	rcRight[0] = {0, 16, 16, 32};
-	rcRight[1] = {16, 16, 32, 32};
-	rcRight[2] = {32, 16, 48, 32};
-	rcRight[3] = {48, 16, 64, 32};
-	rcRight[4] = {64, 16, 80, 32};
-	rcRight[5] = {80, 16, 96, 32};
-	rcRight[6] = {96, 16, 112, 32};
-	rcRight[7] = {0, 0, 0, 0};
-	rcRight[8] = {112, 16, 128, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -805,12 +809,12 @@
 	npc->y += npc->ym;
 	npc->x += npc->xm;
 
-	RECT rect_left[3];
+	RECT rect_left[3] = {
+		{0, 48, 16, 64},
+		{16, 48, 32, 64},
+		{32, 48, 48, 64},
+	};
 
-	rect_left[0] = {0, 48, 16, 64};
-	rect_left[1] = {16, 48, 32, 64};
-	rect_left[2] = {32, 48, 48, 64};
-
 	if (++npc->ani_wait > 1)
 	{
 		npc->ani_wait = 0;
@@ -831,11 +835,11 @@
 //Boss Misery energy shot
 void ActNpc249(NPCHAR *npc)
 {
-	RECT rc[2];
+	RECT rc[2] = {
+		{48, 48, 64, 64},
+		{64, 48, 80, 64},
+	};
 
-	rc[0] = {48, 48, 64, 64};
-	rc[1] = {64, 48, 80, 64};
-
 	if (++npc->act_wait > 8)
 		npc->cond = 0;
 
@@ -854,12 +858,12 @@
 //Boss Misery lightning ball
 void ActNpc250(NPCHAR *npc)
 {
-	RECT rc[3];
+	RECT rc[3] = {
+		{0, 32, 16, 48},
+		{16, 32, 32, 48},
+		{32, 32, 48, 48},
+	};
 
-	rc[0] = {0, 32, 16, 48};
-	rc[1] = {16, 32, 32, 48};
-	rc[2] = {32, 32, 48, 48};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -931,11 +935,11 @@
 //Boss Misery lightning
 void ActNpc251(NPCHAR *npc)
 {
-	RECT rc[2];
+	RECT rc[2] = {
+		{80, 32, 96, 64},
+		{96, 32, 112, 64},
+	};
 
-	rc[0] = {80, 32, 96, 64};
-	rc[1] = {96, 32, 112, 64};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -962,19 +966,20 @@
 //Boss Misery bats
 void ActNpc252(NPCHAR *npc)
 {
-	RECT rcLeft[4];
-	RECT rcRight[4];
+	RECT rcLeft[4] = {
+		{48, 32, 64, 48},
+		{112, 32, 128, 48},
+		{128, 32, 144, 48},
+		{144, 32, 160, 48},
+	};
 
-	rcLeft[0] = {48, 32, 64, 48};
-	rcLeft[1] = {112, 32, 128, 48};
-	rcLeft[2] = {128, 32, 144, 48};
-	rcLeft[3] = {144, 32, 160, 48};
+	RECT rcRight[4] = {
+		{48, 32, 64, 48},
+		{112, 48, 128, 64},
+		{128, 48, 144, 64},
+		{144, 48, 160, 64},
+	};
 
-	rcRight[0] = {48, 32, 64, 48};
-	rcRight[1] = {112, 48, 128, 64};
-	rcRight[2] = {128, 48, 144, 64};
-	rcRight[3] = {144, 48, 160, 64};
-
 	unsigned char deg;
 
 	switch (npc->act_no)
@@ -1082,11 +1087,11 @@
 		npc->cond = 0;
 	}
 
-	RECT rc[2];
+	RECT rc[2] = {
+		{0, 64, 16, 80},
+		{16, 64, 32, 80},
+	};
 
-	rc[0] = {0, 64, 16, 80};
-	rc[1] = {16, 64, 32, 80};
-
 	npc->rect = rc[npc->ani_no];
 }
 
@@ -1093,11 +1098,11 @@
 //Helicopter
 void ActNpc254(NPCHAR *npc)
 {
-	RECT rc[2];
+	RECT rc[2] = {
+		{0, 0, 128, 64},
+		{0, 64, 128, 128},
+	};
 
-	rc[0] = {0, 0, 128, 64};
-	rc[1] = {0, 64, 128, 128};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1131,19 +1136,20 @@
 //Helicopter blades
 void ActNpc255(NPCHAR *npc)
 {
-	RECT rcLeft[4];
-	RECT rcRight[4];
+	RECT rcLeft[4] = {
+		{128, 0, 240, 16},
+		{128, 16, 240, 32},
+		{128, 32, 240, 48},
+		{128, 16, 240, 32},
+	};
 
-	rcLeft[0] = {128, 0, 240, 16};
-	rcLeft[1] = {128, 16, 240, 32};
-	rcLeft[2] = {128, 32, 240, 48};
-	rcLeft[3] = {128, 16, 240, 32};
+	RECT rcRight[4] = {
+		{240, 0, 320, 16},
+		{240, 16, 320, 32},
+		{240, 32, 320, 48},
+		{240, 16, 320, 32},
+	};
 
-	rcRight[0] = {240, 0, 320, 16};
-	rcRight[1] = {240, 16, 320, 32};
-	rcRight[2] = {240, 32, 320, 48};
-	rcRight[3] = {240, 16, 320, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1196,15 +1202,15 @@
 //Doctor (facing away)
 void ActNpc256(NPCHAR *npc)
 {
-	RECT rcLeft[6];
+	RECT rcLeft[6] = {
+		{48, 160, 72, 192},
+		{72, 160, 96, 192},
+		{0, 128, 24, 160},
+		{24, 128, 48, 160},
+		{0, 160, 24, 192},
+		{24, 160, 48, 192},
+	};
 
-	rcLeft[0] = {48, 160, 72, 192};
-	rcLeft[1] = {72, 160, 96, 192};
-	rcLeft[2] = {0, 128, 24, 160};
-	rcLeft[3] = {24, 128, 48, 160};
-	rcLeft[4] = {0, 160, 24, 192};
-	rcLeft[5] = {24, 160, 48, 192};
-
 	switch ( npc->act_no )
 	{
 		case 0:
@@ -1287,11 +1293,11 @@
 //Red crystal
 void ActNpc257(NPCHAR *npc)
 {
-	RECT rc[3];
-
-	rc[0] = {176, 32, 184, 48};
-	rc[1] = {184, 32, 192, 48};
-	rc[2] = {0, 0, 0, 0};
+	RECT rc[3] = {
+		{176, 32, 184, 48},
+		{184, 32, 192, 48},
+		{0, 0, 0, 0},
+	};
 
 	switch (npc->act_no)
 	{
--- a/src/NpcAct260.cpp
+++ b/src/NpcAct260.cpp
@@ -16,17 +16,18 @@
 //Shovel Brigade (caged)
 void ActNpc260(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{128, 64, 144, 80},
+		{144, 64, 160, 80},
+		{224, 64, 240, 80},
+	};
 
-	rcLeft[0] = {128, 64, 144, 80};
-	rcLeft[1] = {144, 64, 160, 80};
-	rcLeft[2] = {224, 64, 240, 80};
+	RECT rcRight[3] = {
+		{128, 80, 144, 96},
+		{144, 80, 160, 96},
+		{224, 80, 240, 96},
+	};
 
-	rcRight[0] = {128, 80, 144, 96};
-	rcRight[1] = {144, 80, 160, 96};
-	rcRight[2] = {224, 80, 240, 96};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -77,15 +78,16 @@
 //Chie (caged)
 void ActNpc261(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{112, 32, 128, 48},
+		{128, 32, 144, 48},
+	};
 
-	rcLeft[0] = {112, 32, 128, 48};
-	rcLeft[1] = {128, 32, 144, 48};
+	RECT rcRight[2] = {
+		{112, 48, 128, 64},
+		{128, 48, 144, 64},
+	};
 
-	rcRight[0] = {112, 48, 128, 64};
-	rcRight[1] = {128, 48, 144, 64};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -129,15 +131,16 @@
 //Chaco (caged)
 void ActNpc262(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{128, 0, 144, 16},
+		{144, 0, 160, 16},
+	};
 
-	rcLeft[0] = {128, 0, 144, 16};
-	rcLeft[1] = {144, 0, 160, 16};
+	RECT rcRight[2] = {
+		{128, 16, 144, 32},
+		{144, 16, 160, 32},
+	};
 
-	rcRight[0] = {128, 16, 144, 32};
-	rcRight[1] = {144, 16, 160, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -181,29 +184,30 @@
 //Doctor (boss)
 void ActNpc263(NPCHAR *npc)
 {
-	RECT rcLeft[9];
-	RECT rcRight[9];
+	RECT rcLeft[9] = {
+		{0, 0, 24, 32},
+		{24, 0, 48, 32},
+		{48, 0, 72, 32},
+		{0, 0, 0, 0},
+		{72, 0, 96, 32},
+		{96, 0, 120, 32},
+		{120, 0, 144, 32},
+		{144, 0, 168, 32},
+		{264, 0, 288, 32},
+	};
 
-	rcLeft[0] = {0, 0, 24, 32};
-	rcLeft[1] = {24, 0, 48, 32};
-	rcLeft[2] = {48, 0, 72, 32};
-	rcLeft[3] = {0, 0, 0, 0};
-	rcLeft[4] = {72, 0, 96, 32};
-	rcLeft[5] = {96, 0, 120, 32};
-	rcLeft[6] = {120, 0, 144, 32};
-	rcLeft[7] = {144, 0, 168, 32};
-	rcLeft[8] = {264, 0, 288, 32};
+	RECT rcRight[9] = {
+		{0, 32, 24, 64},
+		{24, 32, 48, 64},
+		{48, 32, 72, 64},
+		{0, 0, 0, 0},
+		{72, 32, 96, 64},
+		{96, 32, 120, 64},
+		{120, 32, 144, 64},
+		{144, 32, 168, 64},
+		{264, 32, 288, 64},
+	};
 
-	rcRight[0] = {0, 32, 24, 64};
-	rcRight[1] = {24, 32, 48, 64};
-	rcRight[2] = {48, 32, 72, 64};
-	rcRight[3] = {0, 0, 0, 0};
-	rcRight[4] = {72, 32, 96, 64};
-	rcRight[5] = {96, 32, 120, 64};
-	rcRight[6] = {120, 32, 144, 64};
-	rcRight[7] = {144, 32, 168, 64};
-	rcRight[8] = {264, 32, 288, 64};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -506,12 +510,12 @@
 //Doctor red ball projectile
 void ActNpc265(NPCHAR *npc)
 {
-	RECT rc[3];
+	RECT rc[3] = {
+		{288, 16, 304, 32},
+		{288, 32, 304, 48},
+		{288, 48, 304, 64},
+	};
 
-	rc[0] = {288, 16, 304, 32};
-	rc[1] = {288, 32, 304, 48};
-	rc[2] = {288, 48, 304, 64};
-
 	if (++npc->ani_wait > 3)
 	{
 		npc->ani_wait = 0;
@@ -527,11 +531,11 @@
 //Doctor red ball projectile (bouncing)
 void ActNpc266(NPCHAR *npc)
 {
-	RECT rc[2];
+	RECT rc[2] = {
+		{304, 16, 320, 32},
+		{304, 32, 320, 48},
+	};
 
-	rc[0] = {304, 16, 320, 32};
-	rc[1] = {304, 32, 320, 48};
-
 	if (npc->flag & 1)
 		npc->xm = -npc->xm;
 	if (npc->flag & 4)
@@ -560,31 +564,32 @@
 //Muscle Doctor
 void ActNpc267(NPCHAR *npc)
 {
-	RECT rcLeft[10];
-	RECT rcRight[10];
+	RECT rcLeft[10] = {
+		{0, 0, 0, 0},
+		{0, 64, 40, 112},
+		{40, 64, 80, 112},
+		{80, 64, 120, 112},
+		{120, 64, 160, 112},
+		{160, 64, 200, 112},
+		{200, 64, 240, 112},
+		{240, 64, 280, 112},
+		{280, 64, 320, 112},
+		{0, 160, 40, 208},
+	};
 
-	rcLeft[0] = {0, 0, 0, 0};
-	rcLeft[1] = {0, 64, 40, 112};
-	rcLeft[2] = {40, 64, 80, 112};
-	rcLeft[3] = {80, 64, 120, 112};
-	rcLeft[4] = {120, 64, 160, 112};
-	rcLeft[5] = {160, 64, 200, 112};
-	rcLeft[6] = {200, 64, 240, 112};
-	rcLeft[7] = {240, 64, 280, 112};
-	rcLeft[8] = {280, 64, 320, 112};
-	rcLeft[9] = {0, 160, 40, 208};
+	RECT rcRight[10] = {
+		{0, 0, 0, 0},
+		{0, 112, 40, 160},
+		{40, 112, 80, 160},
+		{80, 112, 120, 160},
+		{120, 112, 160, 160},
+		{160, 112, 200, 160},
+		{200, 112, 240, 160},
+		{240, 112, 280, 160},
+		{280, 112, 320, 160},
+		{40, 160, 80, 208},
+	};
 
-	rcRight[0] = {0, 0, 0, 0};
-	rcRight[1] = {0, 112, 40, 160};
-	rcRight[2] = {40, 112, 80, 160};
-	rcRight[3] = {80, 112, 120, 160};
-	rcRight[4] = {120, 112, 160, 160};
-	rcRight[5] = {160, 112, 200, 160};
-	rcRight[6] = {200, 112, 240, 160};
-	rcRight[7] = {240, 112, 280, 160};
-	rcRight[8] = {280, 112, 320, 160};
-	rcRight[9] = {40, 160, 80, 208};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1107,31 +1112,32 @@
 //Igor (enemy)
 void ActNpc268(NPCHAR *npc)
 {
-	RECT rcLeft[10];
-	RECT rcRight[10];
+	RECT rcLeft[10] = {
+		{0, 0, 40, 40},
+		{40, 0, 80, 40},
+		{80, 0, 120, 40},
+		{0, 0, 40, 40},
+		{120, 0, 160, 40},
+		{0, 0, 40, 40},
+		{40, 80, 80, 120},
+		{0, 80, 40, 120},
+		{240, 0, 280, 40},
+		{280, 0, 320, 40},
+	};
 
-	rcLeft[0] = {0, 0, 40, 40};
-	rcLeft[1] = {40, 0, 80, 40};
-	rcLeft[2] = {80, 0, 120, 40};
-	rcLeft[3] = {0, 0, 40, 40};
-	rcLeft[4] = {120, 0, 160, 40};
-	rcLeft[5] = {0, 0, 40, 40};
-	rcLeft[6] = {40, 80, 80, 120};
-	rcLeft[7] = {0, 80, 40, 120};
-	rcLeft[8] = {240, 0, 280, 40};
-	rcLeft[9] = {280, 0, 320, 40};
+	RECT rcRight[10] = {
+		{0, 40, 40, 80},
+		{40, 40, 80, 80},
+		{80, 40, 120, 80},
+		{0, 40, 40, 80},
+		{120, 40, 160, 80},
+		{0, 40, 40, 80},
+		{160, 80, 200, 120},
+		{120, 80, 160, 120},
+		{240, 40, 280, 80},
+		{280, 40, 320, 80},
+	};
 
-	rcRight[0] = {0, 40, 40, 80};
-	rcRight[1] = {40, 40, 80, 80};
-	rcRight[2] = {80, 40, 120, 80};
-	rcRight[3] = {0, 40, 40, 80};
-	rcRight[4] = {120, 40, 160, 80};
-	rcRight[5] = {0, 40, 40, 80};
-	rcRight[6] = {160, 80, 200, 120};
-	rcRight[7] = {120, 80, 160, 120};
-	rcRight[8] = {240, 40, 280, 80};
-	rcRight[9] = {280, 40, 320, 80};
-
 	if (npc->x < gMC.x - 0x28000 || npc->x > gMC.x + 0x28000 || npc->y < gMC.y - 0x1E000 || npc->y > gMC.y + 0x1E000)
 		npc->act_no = 1;
 
@@ -1306,17 +1312,18 @@
 //Red Bat (bouncing)
 void ActNpc269(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{232, 0, 248, 16},
+		{248, 0, 264, 16},
+		{248, 16, 264, 32},
+	};
 
-	rcLeft[0] = {232, 0, 248, 16};
-	rcLeft[1] = {248, 0, 264, 16};
-	rcLeft[2] = {248, 16, 264, 32};
+	RECT rcRight[3] = {
+		{232, 32, 248, 48},
+		{248, 32, 264, 48},
+		{248, 48, 264, 64},
+	};
 
-	rcRight[0] = {232, 32, 248, 48};
-	rcRight[1] = {248, 32, 264, 48};
-	rcRight[2] = {248, 48, 264, 64};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1368,11 +1375,11 @@
 //Doctor's blood (or """"red energy"""")
 void ActNpc270(NPCHAR *npc)
 {
-	RECT rc[2];
+	RECT rc[2] = {
+		{170, 34, 174, 38},
+		{170, 42, 174, 46},
+	};
 
-	rc[0] = {170, 34, 174, 38};
-	rc[1] = {170, 42, 174, 46};
-
 	if (npc->direct == 3 || npc->direct == 1)
 	{
 		if (npc->direct == 3)
@@ -1461,10 +1468,12 @@
 					npc->rect.right = 0x20;
 					npc->rect.top = 0x40;
 					npc->rect.bottom = 0x60;
+
 					npc->view.front = 0x2000;
 					npc->view.back = 0x2000;
 					npc->view.top = 0x2000;
 					npc->view.bottom = 0x2000;
+
 					npc->hit.front = 0x1800;
 					npc->hit.back = 0x1800;
 					npc->hit.top = 0x1800;
@@ -1533,12 +1542,12 @@
 //Droll projectile
 void ActNpc273(NPCHAR *npc)
 {
-	RECT rc[3];
+	RECT rc[3] = {
+		{248, 40, 272, 64},
+		{272, 40, 296, 64},
+		{296, 40, 320, 64},
+	};
 
-	rc[0] = {248, 40, 272, 64};
-	rc[1] = {272, 40, 296, 64};
-	rc[2] = {296, 40, 320, 64};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1572,23 +1581,24 @@
 //Droll
 void ActNpc274(NPCHAR *npc)
 {
-	RECT rcLeft[6];
-	RECT rcRight[6];
+	RECT rcLeft[6] = {
+		{0, 0, 32, 40},
+		{32, 0, 64, 40},
+		{64, 0, 96, 40},
+		{64, 80, 96, 120},
+		{96, 80, 128, 120},
+		{96, 0, 128, 40},
+	};
 
-	rcLeft[0] = {0, 0, 32, 40};
-	rcLeft[1] = {32, 0, 64, 40};
-	rcLeft[2] = {64, 0, 96, 40};
-	rcLeft[3] = {64, 80, 96, 120};
-	rcLeft[4] = {96, 80, 128, 120};
-	rcLeft[5] = {96, 0, 128, 40};
+	RECT rcRight[6] = {
+		{0, 40, 32, 80},
+		{32, 40, 64, 80},
+		{64, 40, 96, 80},
+		{64, 120, 96, 160},
+		{96, 120, 128, 160},
+		{96, 40, 128, 80},
+	};
 
-	rcRight[0] = {0, 40, 32, 80};
-	rcRight[1] = {32, 40, 64, 80};
-	rcRight[2] = {64, 40, 96, 80};
-	rcRight[3] = {64, 120, 96, 160};
-	rcRight[4] = {96, 120, 128, 160};
-	rcRight[5] = {96, 40, 128, 80};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1631,7 +1641,7 @@
 			{
 				npc->act_no = 12;
 				npc->ani_no = 3;
-				npc->ym = -0x600u;
+				npc->ym = -0x600;
 				npc->count1 = 0;
 
 				if (npc->tgt_x > npc->x)
@@ -1696,13 +1706,13 @@
 //Puppy (plantation)
 void ActNpc275(NPCHAR *npc)
 {
-	RECT rcRight[4];
+	RECT rcRight[4] = {
+		{272, 80, 288, 96},
+		{288, 80, 304, 96},
+		{272, 80, 288, 96},
+		{304, 80, 320, 96},
+	};
 
-	rcRight[0] = {272, 80, 288, 96};
-	rcRight[1] = {288, 80, 304, 96};
-	rcRight[2] = {272, 80, 288, 96};
-	rcRight[3] = {304, 80, 320, 96};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1755,29 +1765,30 @@
 //Red Demon
 void ActNpc276(NPCHAR *npc)
 {
-	RECT rcLeft[9];
-	RECT rcRight[9];
+	RECT rcLeft[9] = {
+		{0, 64, 32, 104},
+		{32, 64, 64, 104},
+		{64, 64, 96, 104},
+		{96, 64, 128, 104},
+		{128, 64, 160, 104},
+		{160, 64, 192, 104},
+		{192, 64, 224, 104},
+		{224, 64, 256, 104},
+		{256, 64, 288, 104},
+	};
 
-	rcLeft[0] = {0, 64, 32, 104};
-	rcLeft[1] = {32, 64, 64, 104};
-	rcLeft[2] = {64, 64, 96, 104};
-	rcLeft[3] = {96, 64, 128, 104};
-	rcLeft[4] = {128, 64, 160, 104};
-	rcLeft[5] = {160, 64, 192, 104};
-	rcLeft[6] = {192, 64, 224, 104};
-	rcLeft[7] = {224, 64, 256, 104};
-	rcLeft[8] = {256, 64, 288, 104};
+	RECT rcRight[9] = {
+		{0, 104, 32, 144},
+		{32, 104, 64, 144},
+		{64, 104, 96, 144},
+		{96, 104, 128, 144},
+		{128, 104, 160, 144},
+		{160, 104, 192, 144},
+		{192, 104, 224, 144},
+		{224, 104, 256, 144},
+		{256, 104, 288, 144},
+	};
 
-	rcRight[0] = {0, 104, 32, 144};
-	rcRight[1] = {32, 104, 64, 144};
-	rcRight[2] = {64, 104, 96, 144};
-	rcRight[3] = {96, 104, 128, 144};
-	rcRight[4] = {128, 104, 160, 144};
-	rcRight[5] = {160, 104, 192, 144};
-	rcRight[6] = {192, 104, 224, 144};
-	rcRight[7] = {224, 104, 256, 144};
-	rcRight[8] = {256, 104, 288, 144};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1813,7 +1824,7 @@
 			npc->act_no = 11;
 			npc->act_wait = 0;
 			npc->ani_no = 3;
-			npc->bits |= 0x20u;
+			npc->bits |= 0x20;
 			// Fallthrough
 		case 11:
 			switch (++npc->act_wait)
@@ -1954,12 +1965,12 @@
 //Red Demon projectile
 void ActNpc277(NPCHAR *npc)
 {
-	RECT rc[3];
+	RECT rc[3] = {
+		{128, 0, 152, 24},
+		{152, 0, 176, 24},
+		{176, 0, 200, 24},
+	};
 
-	rc[0] = {128, 0, 152, 24};
-	rc[1] = {152, 0, 176, 24};
-	rc[2] = {176, 0, 200, 24};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1993,19 +2004,21 @@
 //Little family
 void ActNpc278(NPCHAR *npc)
 {
-	RECT rcMama[2];
-	RECT rcPapa[2];
-	RECT rcKodomo[2];
+	RECT rcPapa[2] = {
+		{0, 120, 8, 128},
+		{8, 120, 16, 128},
+	};
 
-	rcPapa[0] = {0, 120, 8, 128};
-	rcPapa[1] = {8, 120, 16, 128};
+	RECT rcMama[2] = {
+		{16, 120, 24, 128},
+		{24, 120, 32, 128},
+	};
 
-	rcMama[0] = {16, 120, 24, 128};
-	rcMama[1] = {24, 120, 32, 128};
+	RECT rcKodomo[2] = {
+		{32, 120, 40, 128},
+		{40, 120, 48, 128},
+	};
 
-	rcKodomo[0] = {32, 120, 40, 128};
-	rcKodomo[1] = {40, 120, 48, 128};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -2105,10 +2118,10 @@
 //Falling block (large)
 void ActNpc279(NPCHAR *npc)
 {
-	RECT rc[2];
-
-	rc[0] = {0, 16, 32, 48};
-	rc[1] = {16, 0, 32, 16};
+	RECT rc[2] = {
+		{0, 16, 32, 48},
+		{16, 0, 32, 16},
+	};
 
 	switch (npc->act_no)
 	{
--- a/src/NpcAct280.cpp
+++ b/src/NpcAct280.cpp
@@ -15,15 +15,16 @@
 //Sue (being teleported by Misery)
 void ActNpc280(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{112, 32, 128, 48},
+		{144, 32, 160, 48},
+	};
 
-	rcLeft[0] = {112, 32, 128, 48};
-	rcLeft[1] = {144, 32, 160, 48};
+	RECT rcRight[2] = {
+		{112, 48, 128, 64},
+		{144, 48, 160, 64},
+	};
 
-	rcRight[0] = {112, 48, 128, 64};
-	rcRight[1] = {144, 48, 160, 64};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -127,12 +128,12 @@
 //Mini Undead Core (active)
 void ActNpc282(NPCHAR *npc)
 {
-	RECT tc[3];
+	RECT tc[3] = {
+		{256, 80, 320, 120},
+		{256, 0, 320, 40},
+		{256, 120, 320, 160},
+	};
 
-	tc[0] = {256, 80, 320, 120};
-	tc[1] = {256, 0, 320, 40};
-	tc[2] = {256, 120, 320, 160};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -201,33 +202,34 @@
 //Misery (transformed)
 void ActNpc283(NPCHAR *npc)
 {
-	RECT rcLeft[11];
-	RECT rcRight[11];
+	RECT rcLeft[11] = {
+		{0, 64, 32, 96},
+		{32, 64, 64, 96},
+		{64, 64, 96, 96},
+		{96, 64, 128, 96},
+		{128, 64, 160, 96},
+		{160, 64, 192, 96},
+		{192, 64, 224, 96},
+		{224, 64, 256, 96},
+		{0, 0, 0, 0},
+		{256, 64, 288, 96},
+		{288, 64, 320, 96},
+	};
 
-	rcLeft[0] = {0, 64, 32, 96};
-	rcLeft[1] = {32, 64, 64, 96};
-	rcLeft[2] = {64, 64, 96, 96};
-	rcLeft[3] = {96, 64, 128, 96};
-	rcLeft[4] = {128, 64, 160, 96};
-	rcLeft[5] = {160, 64, 192, 96};
-	rcLeft[6] = {192, 64, 224, 96};
-	rcLeft[7] = {224, 64, 256, 96};
-	rcLeft[8] = {0, 0, 0, 0};
-	rcLeft[9] = {256, 64, 288, 96};
-	rcLeft[10] = {288, 64, 320, 96};
+	RECT rcRight[11] = {
+		{0, 96, 32, 128},
+		{32, 96, 64, 128},
+		{64, 96, 96, 128},
+		{96, 96, 128, 128},
+		{128, 96, 160, 128},
+		{160, 96, 192, 128},
+		{192, 96, 224, 128},
+		{224, 96, 256, 128},
+		{0, 0, 0, 0},
+		{256, 96, 288, 128},
+		{288, 96, 320, 128},
+	};
 
-	rcRight[0] = {0, 96, 32, 128};
-	rcRight[1] = {32, 96, 64, 128};
-	rcRight[2] = {64, 96, 96, 128};
-	rcRight[3] = {96, 96, 128, 128};
-	rcRight[4] = {128, 96, 160, 128};
-	rcRight[5] = {160, 96, 192, 128};
-	rcRight[6] = {192, 96, 224, 128};
-	rcRight[7] = {224, 96, 256, 128};
-	rcRight[8] = {0, 0, 0, 0};
-	rcRight[9] = {256, 96, 288, 128};
-	rcRight[10] = {288, 96, 320, 128};
-
 	if (npc->act_no < 100 && (gBoss[0].cond == 0 || npc->life < 400))
 		npc->act_no = 100;
 
@@ -601,37 +603,38 @@
 //Sue (transformed)
 void ActNpc284(NPCHAR *npc)
 {
-	RECT rcLeft[13];
-	RECT rcRight[13];
+	RECT rcLeft[13] = {
+		{0, 128, 32, 160},
+		{32, 128, 64, 160},
+		{64, 128, 96, 160},
+		{96, 128, 128, 160},
+		{128, 128, 160, 160},
+		{160, 128, 192, 160},
+		{192, 128, 224, 160},
+		{224, 128, 256, 160},
+		{0, 0, 0, 0},
+		{256, 128, 288, 160},
+		{288, 128, 320, 160},
+		{224, 64, 256, 96},
+		{208, 32, 224, 48},
+	};
 
-	rcLeft[0] = {0, 128, 32, 160};
-	rcLeft[1] = {32, 128, 64, 160};
-	rcLeft[2] = {64, 128, 96, 160};
-	rcLeft[3] = {96, 128, 128, 160};
-	rcLeft[4] = {128, 128, 160, 160};
-	rcLeft[5] = {160, 128, 192, 160};
-	rcLeft[6] = {192, 128, 224, 160};
-	rcLeft[7] = {224, 128, 256, 160};
-	rcLeft[8] = {0, 0, 0, 0};
-	rcLeft[9] = {256, 128, 288, 160};
-	rcLeft[10] = {288, 128, 320, 160};
-	rcLeft[11] = {224, 64, 256, 96};
-	rcLeft[12] = {208, 32, 224, 48};
+	RECT rcRight[13] = {
+		{0, 160, 32, 192},
+		{32, 160, 64, 192},
+		{64, 160, 96, 192},
+		{96, 160, 128, 192},
+		{128, 160, 160, 192},
+		{160, 160, 192, 192},
+		{192, 160, 224, 192},
+		{224, 160, 256, 192},
+		{0, 0, 0, 0},
+		{256, 160, 288, 192},
+		{288, 160, 320, 192},
+		{224, 96, 256, 128},
+		{208, 48, 224, 64},
+	};
 
-	rcRight[0] = {0, 160, 32, 192};
-	rcRight[1] = {32, 160, 64, 192};
-	rcRight[2] = {64, 160, 96, 192};
-	rcRight[3] = {96, 160, 128, 192};
-	rcRight[4] = {128, 160, 160, 192};
-	rcRight[5] = {160, 160, 192, 192};
-	rcRight[6] = {192, 160, 224, 192};
-	rcRight[7] = {224, 160, 256, 192};
-	rcRight[8] = {0, 0, 0, 0};
-	rcRight[9] = {256, 160, 288, 192};
-	rcRight[10] = {288, 160, 320, 192};
-	rcRight[11] = {224, 96, 256, 128};
-	rcRight[12] = {208, 48, 224, 64};
-
 	if (npc->act_no < 100 && (gBoss[0].cond == 0|| npc->life < 500))
 		npc->act_no = 100;
 
@@ -996,12 +999,12 @@
 //Undead Core spiral shot trail
 void ActNpc286(NPCHAR *npc)
 {
-	RECT rc[3];
+	RECT rc[3] = {
+		{232, 120, 248, 136},
+		{232, 136, 248, 152},
+		{232, 152, 248, 168},
+	};
 
-	rc[0] = {232, 120, 248, 136};
-	rc[1] = {232, 136, 248, 152};
-	rc[2] = {232, 152, 248, 168};
-
 	if (++npc->ani_wait > 0)
 	{
 		npc->ani_wait = 0;
@@ -1017,16 +1020,16 @@
 //Orange smoke
 void ActNpc287(NPCHAR *npc)
 {
-	RECT rcLeft[7];
+	RECT rcLeft[7] = {
+		{0, 224, 16, 240},
+		{16, 224, 32, 240},
+		{32, 224, 48, 240},
+		{48, 224, 64, 240},
+		{64, 224, 80, 240},
+		{80, 224, 96, 240},
+		{96, 224, 112, 240},
+	};
 
-	rcLeft[0] = {0, 224, 16, 240};
-	rcLeft[1] = {16, 224, 32, 240};
-	rcLeft[2] = {32, 224, 48, 240};
-	rcLeft[3] = {48, 224, 64, 240};
-	rcLeft[4] = {64, 224, 80, 240};
-	rcLeft[5] = {80, 224, 96, 240};
-	rcLeft[6] = {96, 224, 112, 240};
-
 	if (npc->act_no == 0)
 	{
 		npc->xm = Random(-4, 4) * 0x200;
@@ -1056,14 +1059,14 @@
 //Undead Core exploding rock
 void ActNpc288(NPCHAR *npc)
 {
-	RECT rc[5];
+	RECT rc[5] = {
+		{232, 72, 248, 88},
+		{232, 88, 248, 104},
+		{232, 0, 256, 24},
+		{232, 24, 256, 48},
+		{232, 48, 256, 72},
+	};
 
-	rc[0] = {232, 72, 248, 88};
-	rc[1] = {232, 88, 248, 104};
-	rc[2] = {232, 0, 256, 24};
-	rc[3] = {232, 24, 256, 48};
-	rc[4] = {232, 48, 256, 72};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1145,17 +1148,18 @@
 //Critter (orange, Misery)
 void ActNpc289(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{160, 32, 176, 48},
+		{176, 32, 192, 48},
+		{192, 32, 208, 48},
+	};
 
-	rcLeft[0] = {160, 32, 176, 48};
-	rcLeft[1] = {176, 32, 192, 48};
-	rcLeft[2] = {192, 32, 208, 48};
+	RECT rcRight[3] = {
+		{160, 48, 176, 64},
+		{176, 48, 192, 64},
+		{192, 48, 208, 64},
+	};
 
-	rcRight[0] = {160, 48, 176, 64};
-	rcRight[1] = {176, 48, 192, 64};
-	rcRight[2] = {192, 48, 208, 64};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1251,17 +1255,18 @@
 //Bat (Misery)
 void ActNpc290(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{112, 32, 128, 48},
+		{128, 32, 144, 48},
+		{144, 32, 160, 48},
+	};
 
-	rcLeft[0] = {112, 32, 128, 48};
-	rcLeft[1] = {128, 32, 144, 48};
-	rcLeft[2] = {144, 32, 160, 48};
+	RECT rcRight[3] = {
+		{112, 48, 128, 64},
+		{128, 48, 144, 64},
+		{144, 48, 160, 64},
+	};
 
-	rcRight[0] = {112, 48, 128, 64};
-	rcRight[1] = {128, 48, 144, 64};
-	rcRight[2] = {144, 48, 160, 64};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1336,11 +1341,11 @@
 //Mini Undead Core (inactive)
 void ActNpc291(NPCHAR *npc)
 {
-	RECT tc[2];
+	RECT tc[2] = {
+		{256, 80, 320, 120},
+		{256, 0, 320, 40},
+	};
 
-	tc[0] = {256, 80, 320, 120};
-	tc[1] = {256, 0, 320, 40};
-
 	if (npc->act_no == 0)
 	{
 		npc->act_no = 20;
@@ -1366,11 +1371,11 @@
 //Undead Core giant energy shot
 void ActNpc293(NPCHAR *npc)
 {
-	RECT rect[2];
+	RECT rect[2] = {
+		{240, 200, 280, 240},
+		{280, 200, 320, 240},
+	};
 
-	rect[0] = {240, 200, 280, 240};
-	rect[1] = {280, 200, 320, 240};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1454,11 +1459,12 @@
 //Cloud
 void ActNpc295(NPCHAR *npc)
 {
-	RECT rc[4];
-	rc[0] = {0, 0, 208, 64};
-	rc[1] = {32, 64, 144, 96};
-	rc[2] = {32, 96, 104, 0x80};
-	rc[3] = {104, 96, 144, 0x80};
+	RECT rc[4] = {
+		{0, 0, 208, 64},
+		{32, 64, 144, 96},
+		{32, 96, 104, 0x80},
+		{104, 96, 144, 0x80},
+	};
 	
 	switch (npc->act_no)
 	{
@@ -1579,25 +1585,28 @@
 //Sue in dragon's mouth
 void ActNpc297(NPCHAR *npc)
 {
+	RECT rc = {112, 48, 0x80, 64};
+
 	npc->x = npc->pNpc->x + 0x2000;
 	npc->y = npc->pNpc->y + 0x1000;
-	npc->rect = {112, 48, 0x80, 64};
+
+	npc->rect = rc;
 }
 
 //Doctor (opening)
 void ActNpc298(NPCHAR *npc)
 {
-	RECT rc[8];
+	RECT rc[8] = {
+		{72, 0x80, 88, 160},
+		{88, 0x80, 104, 160},
+		{104, 0x80, 120, 160},
+		{72, 0x80, 88, 160},
+		{120, 0x80, 136, 160},
+		{72, 0x80, 88, 160},
+		{104, 160, 120, 192},
+		{120, 160, 136, 192},
+	};
 
-	rc[0] = {72, 0x80, 88, 160};
-	rc[1] = {88, 0x80, 104, 160};
-	rc[2] = {104, 0x80, 120, 160};
-	rc[3] = {72, 0x80, 88, 160};
-	rc[4] = {120, 0x80, 136, 160};
-	rc[5] = {72, 0x80, 88, 160};
-	rc[6] = {104, 160, 120, 192};
-	rc[7] = {120, 160, 136, 192};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1694,10 +1703,10 @@
 //Balrog/Misery (opening)
 void ActNpc299(NPCHAR *npc)
 {
-	RECT rc[2];
-
-	rc[0] = {0, 0, 48, 48};
-	rc[1] = {48, 0, 96, 48};
+	RECT rc[2] = {
+		{0, 0, 48, 48},
+		{48, 0, 96, 48},
+	};
 
 	switch (npc->act_no)
 	{
--- a/src/NpcAct300.cpp
+++ b/src/NpcAct300.cpp
@@ -17,10 +17,8 @@
 //Demon crown (opening)
 void ActNpc300(NPCHAR *npc)
 {
-	RECT rc[1];
+	RECT rc = {192, 80, 208, 96};
 
-	rc[0] = {192, 80, 208, 96};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -32,23 +30,23 @@
 	if (++npc->ani_wait % 8 == 1)
 		SetCaret(npc->x + (Random(-8, 8) * 0x200), npc->y + 0x1000, 13, 1);
 
-	npc->rect = rc[0];
+	npc->rect = rc;
 }
 
 //Fish missile (Misery)
 void ActNpc301(NPCHAR *npc)
 {
-	RECT rect[8];
+	RECT rect[8] = {
+		{144, 0, 160, 16},
+		{160, 0, 176, 16},
+		{176, 0, 192, 16},
+		{192, 0, 208, 16},
+		{144, 16, 160, 32},
+		{160, 16, 176, 32},
+		{176, 16, 192, 32},
+		{192, 16, 208, 32},
+	};
 
-	rect[0] = {144, 0, 160, 16};
-	rect[1] = {160, 0, 176, 16};
-	rect[2] = {176, 0, 192, 16};
-	rect[3] = {192, 0, 208, 16};
-	rect[4] = {144, 16, 160, 32};
-	rect[5] = {160, 16, 176, 32};
-	rect[6] = {176, 16, 192, 32};
-	rect[7] = {192, 16, 208, 32};
-
 	int dir;
 
 	switch (npc->act_no)
@@ -174,13 +172,15 @@
 //Curly's machine gun
 void ActNpc303(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{216, 152, 232, 168},
+		{232, 152, 248, 168},
+	};
 
-	rcLeft[0] = {216, 152, 232, 168};
-	rcLeft[1] = {232, 152, 248, 168};
-	rcRight[0] = {216, 168, 232, 184};
-	rcRight[1] = {232, 168, 248, 184};
+	RECT rcRight[2] = {
+		{216, 168, 232, 184},
+		{232, 168, 248, 184},
+	};
 	
 	if (npc->pNpc)
 	{
@@ -213,11 +213,12 @@
 //Gaudi in hospital
 void ActNpc304(NPCHAR *npc)
 {
-	RECT rc[4];
-	rc[0] = {0, 176, 24, 192};
-	rc[1] = {24, 176, 48, 192};
-	rc[2] = {48, 176, 72, 192};
-	rc[3] = {72, 176, 96, 192};
+	RECT rc[4] = {
+		{0, 176, 24, 192},
+		{24, 176, 48, 192},
+		{48, 176, 72, 192},
+		{72, 176, 96, 192},
+	};
 	
 	switch (npc->act_no)
 	{
@@ -255,13 +256,15 @@
 //Small puppy
 void ActNpc305(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{160, 144, 176, 160},
+		{176, 144, 192, 160},
+	};
 
-	rcLeft[0] = {160, 144, 176, 160};
-	rcLeft[1] = {176, 144, 192, 160};
-	rcRight[0] = {160, 160, 176, 176};
-	rcRight[1] = {176, 160, 192, 176};
+	RECT rcRight[2] = {
+		{160, 160, 176, 176},
+		{176, 160, 192, 176},
+	};
 	
 	switch (npc->act_no)
 	{
@@ -292,12 +295,15 @@
 //Balrog (nurse)
 void ActNpc306(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
-	rcLeft[0] = {240, 96, 280, 128};
-	rcLeft[1] = {280, 96, 320, 128};
-	rcRight[0] = {160, 152, 200, 184};
-	rcRight[1] = {200, 152, 240, 184};
+	RECT rcLeft[2] = {
+		{240, 96, 280, 128},
+		{280, 96, 320, 128},
+	};
+
+	RECT rcRight[2] = {
+		{160, 152, 200, 184},
+		{200, 152, 240, 184},
+	};
 	
 	switch (npc->act_no)
 	{
@@ -324,21 +330,24 @@
 			break;
 	}
 	
-	if (npc->direct)
-		npc->rect = rcRight[npc->ani_no];
-	else
+	if (npc->direct == 0)
 		npc->rect = rcLeft[npc->ani_no];
+	else
+		npc->rect = rcRight[npc->ani_no];
 }
 
 //Caged Santa
 void ActNpc307(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
-	rcLeft[0] = {0, 32, 16, 48};
-	rcLeft[1] = {16, 32, 32, 48};
-	rcRight[0] = {0, 48, 16, 64};
-	rcRight[1] = {16, 48, 32, 64};
+	RECT rcLeft[2] = {
+		{0, 32, 16, 48},
+		{16, 32, 32, 48},
+	};
+
+	RECT rcRight[2] = {
+		{0, 48, 16, 64},
+		{16, 48, 32, 64},
+	};
 	
 	switch (npc->act_no)
 	{
@@ -366,29 +375,30 @@
 			break;
 	}
 	
-	if (gMC.x >= npc->x)
-		npc->direct = 2;
-	else
+	if (gMC.x < npc->x)
 		npc->direct = 0;
-	
-	if (npc->direct)
-		npc->rect = rcRight[npc->ani_no];
 	else
+		npc->direct = 2;
+	
+	if (npc->direct == 0)
 		npc->rect = rcLeft[npc->ani_no];
+	else
+		npc->rect = rcRight[npc->ani_no];
 }
 
 //Stumpy
 void ActNpc308(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{128, 112, 144, 128},
+		{144, 112, 160, 128},
+	};
 
-	rcLeft[0] = {128, 112, 144, 128};
-	rcLeft[1] = {144, 112, 160, 128};
+	RECT rcRight[2] = {
+		{128, 128, 144, 144},
+		{144, 128, 160, 144},
+	};
 
-	rcRight[0] = {128, 128, 144, 144};
-	rcRight[1] = {144, 128, 160, 144};
-
 	unsigned char deg;
 
 	switch (npc->act_no)
@@ -487,15 +497,16 @@
 //Bute
 void ActNpc309(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{0, 0, 16, 16},
+		{16, 0, 32, 16},
+	};
 
-	rcLeft[0] = {0, 0, 16, 16};
-	rcLeft[1] = {16, 0, 32, 16};
+	RECT rcRight[2] = {
+		{0, 16, 16, 32},
+		{16, 16, 32, 32},
+	};
 
-	rcRight[0] = {0, 16, 16, 32};
-	rcRight[1] = {16, 16, 32, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -590,21 +601,22 @@
 //Bute (with sword)
 void ActNpc310(NPCHAR *npc)
 {
-	RECT rcLeft[5];
-	RECT rcRight[5];
+	RECT rcLeft[5] = {
+		{32, 0, 56, 16},
+		{56, 0, 80, 16},
+		{80, 0, 104, 16},
+		{104, 0, 128, 16},
+		{128, 0, 152, 16},
+	};
 
-	rcLeft[0] = {32, 0, 56, 16};
-	rcLeft[1] = {56, 0, 80, 16};
-	rcLeft[2] = {80, 0, 104, 16};
-	rcLeft[3] = {104, 0, 128, 16};
-	rcLeft[4] = {128, 0, 152, 16};
+	RECT rcRight[5] = {
+		{32, 16, 56, 32},
+		{56, 16, 80, 32},
+		{80, 16, 104, 32},
+		{104, 16, 128, 32},
+		{128, 16, 152, 32},
+	};
 
-	rcRight[0] = {32, 16, 56, 32};
-	rcRight[1] = {56, 16, 80, 32};
-	rcRight[2] = {80, 16, 104, 32};
-	rcRight[3] = {104, 16, 128, 32};
-	rcRight[4] = {128, 16, 152, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -740,25 +752,26 @@
 //Bute archer
 void ActNpc311(NPCHAR *npc)
 {
-	RECT rcLeft[7];
-	RECT rcRight[7];
+	RECT rcLeft[7] = {
+		{0, 32, 24, 56},
+		{24, 32, 48, 56},
+		{48, 32, 72, 56},
+		{72, 32, 96, 56},
+		{96, 32, 120, 56},
+		{120, 32, 144, 56},
+		{144, 32, 168, 56},
+	};
 
-	rcLeft[0] = {0, 32, 24, 56};
-	rcLeft[1] = {24, 32, 48, 56};
-	rcLeft[2] = {48, 32, 72, 56};
-	rcLeft[3] = {72, 32, 96, 56};
-	rcLeft[4] = {96, 32, 120, 56};
-	rcLeft[5] = {120, 32, 144, 56};
-	rcLeft[6] = {144, 32, 168, 56};
+	RECT rcRight[7] = {
+		{0, 56, 24, 80},
+		{24, 56, 48, 80},
+		{48, 56, 72, 80},
+		{72, 56, 96, 80},
+		{96, 56, 120, 80},
+		{120, 56, 144, 80},
+		{144, 56, 168, 80},
+	};
 
-	rcRight[0] = {0, 56, 24, 80};
-	rcRight[1] = {24, 56, 48, 80};
-	rcRight[2] = {48, 56, 72, 80};
-	rcRight[3] = {72, 56, 96, 80};
-	rcRight[4] = {96, 56, 120, 80};
-	rcRight[5] = {120, 56, 144, 80};
-	rcRight[6] = {144, 56, 168, 80};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -886,21 +899,22 @@
 //Bute arrow projectile
 void ActNpc312(NPCHAR *npc)
 {
-	RECT rcLeft[5];
-	RECT rcRight[5];
+	RECT rcLeft[5] = {
+		{0, 160, 16, 176},
+		{16, 160, 32, 176},
+		{32, 160, 48, 176},
+		{48, 160, 64, 176},
+		{64, 160, 80, 176},
+	};
 
-	rcLeft[0] = {0, 160, 16, 176};
-	rcLeft[1] = {16, 160, 32, 176};
-	rcLeft[2] = {32, 160, 48, 176};
-	rcLeft[3] = {48, 160, 64, 176};
-	rcLeft[4] = {64, 160, 80, 176};
+	RECT rcRight[5] = {
+		{0, 176, 16, 192},
+		{16, 176, 32, 192},
+		{32, 176, 48, 192},
+		{48, 176, 64, 192},
+		{64, 176, 80, 192},
+	};
 
-	rcRight[0] = {0, 176, 16, 192};
-	rcRight[1] = {16, 176, 32, 192};
-	rcRight[2] = {32, 176, 48, 192};
-	rcRight[3] = {48, 176, 64, 192};
-	rcRight[4] = {64, 176, 80, 192};
-
 	if (npc->act_no > 0 && npc->act_no < 20 && npc->flag & 0xFF)
 		npc->act_no = 20;
 
@@ -999,39 +1013,40 @@
 //Ma Pignon
 void ActNpc313(NPCHAR *npc)
 {
-	RECT rcLeft[14];
-	RECT rcRight[14];
+	RECT rcLeft[14] = {
+		{128, 0, 144, 16},
+		{144, 0, 160, 16},
+		{160, 0, 176, 16},
+		{176, 0, 192, 16},
+		{192, 0, 208, 16},
+		{208, 0, 224, 16},
+		{224, 0, 240, 16},
+		{240, 0, 256, 16},
+		{256, 0, 272, 16},
+		{272, 0, 288, 16},
+		{288, 0, 304, 16},
+		{128, 0, 144, 16},
+		{176, 0, 192, 16},
+		{304, 0, 320, 16},
+	};
 
-	rcLeft[0] = {128, 0, 144, 16};
-	rcLeft[1] = {144, 0, 160, 16};
-	rcLeft[2] = {160, 0, 176, 16};
-	rcLeft[3] = {176, 0, 192, 16};
-	rcLeft[4] = {192, 0, 208, 16};
-	rcLeft[5] = {208, 0, 224, 16};
-	rcLeft[6] = {224, 0, 240, 16};
-	rcLeft[7] = {240, 0, 256, 16};
-	rcLeft[8] = {256, 0, 272, 16};
-	rcLeft[9] = {272, 0, 288, 16};
-	rcLeft[10] = {288, 0, 304, 16};
-	rcLeft[11] = {128, 0, 144, 16};
-	rcLeft[12] = {176, 0, 192, 16};
-	rcLeft[13] = {304, 0, 320, 16};
+	RECT rcRight[14] = {
+		{128, 16, 144, 32},
+		{144, 16, 160, 32},
+		{160, 16, 176, 32},
+		{176, 16, 192, 32},
+		{192, 16, 208, 32},
+		{208, 16, 224, 32},
+		{224, 16, 240, 32},
+		{240, 16, 256, 32},
+		{256, 16, 272, 32},
+		{272, 16, 288, 32},
+		{288, 16, 304, 32},
+		{128, 16, 144, 32},
+		{176, 16, 192, 32},
+		{304, 16, 320, 32},
+	};
 
-	rcRight[0] = {128, 16, 144, 32};
-	rcRight[1] = {144, 16, 160, 32};
-	rcRight[2] = {160, 16, 176, 32};
-	rcRight[3] = {176, 16, 192, 32};
-	rcRight[4] = {192, 16, 208, 32};
-	rcRight[5] = {208, 16, 224, 32};
-	rcRight[6] = {224, 16, 240, 32};
-	rcRight[7] = {240, 16, 256, 32};
-	rcRight[8] = {256, 16, 272, 32};
-	rcRight[9] = {272, 16, 288, 32};
-	rcRight[10] = {288, 16, 304, 32};
-	rcRight[11] = {128, 16, 144, 32};
-	rcRight[12] = {176, 16, 192, 32};
-	rcRight[13] = {304, 16, 320, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1348,12 +1363,12 @@
 //Ma Pignon rock
 void ActNpc314(NPCHAR *npc)
 {
-	RECT rc[3];
+	RECT rc[3] = {
+		{64, 64, 80, 80},
+		{80, 64, 96, 80},
+		{96, 64, 112, 80},
+	};
 
-	rc[0] = {64, 64, 80, 80};
-	rc[1] = {80, 64, 96, 80};
-	rc[2] = {96, 64, 112, 80};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1419,19 +1434,20 @@
 //Ma Pignon clone
 void ActNpc315(NPCHAR *npc)
 {
-	RECT rcLeft[4];
-	RECT rcRight[4];
+	RECT rcLeft[4] = {
+		{128, 0, 144, 16},
+		{160, 0, 176, 16},
+		{176, 0, 192, 16},
+		{192, 0, 208, 16},
+	};
 
-	rcLeft[0] = {128, 0, 144, 16};
-	rcLeft[1] = {160, 0, 176, 16};
-	rcLeft[2] = {176, 0, 192, 16};
-	rcLeft[3] = {192, 0, 208, 16};
+	RECT rcRight[4] = {
+		{128, 16, 144, 32},
+		{160, 16, 176, 32},
+		{176, 16, 192, 32},
+		{192, 16, 208, 32},
+	};
 
-	rcRight[0] = {128, 16, 144, 32};
-	rcRight[1] = {160, 16, 176, 32};
-	rcRight[2] = {176, 16, 192, 32};
-	rcRight[3] = {192, 16, 208, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1560,17 +1576,18 @@
 //Bute (dead)
 void ActNpc316(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{248, 32, 272, 56},
+		{272, 32, 296, 56},
+		{296, 32, 320, 56},
+	};
 
-	rcLeft[0] = {248, 32, 272, 56};
-	rcLeft[1] = {272, 32, 296, 56};
-	rcLeft[2] = {296, 32, 320, 56};
+	RECT rcRight[3] = {
+		{248, 56, 272, 80},
+		{272, 56, 296, 80},
+		{296, 56, 320, 80},
+	};
 
-	rcRight[0] = {248, 56, 272, 80};
-	rcRight[1] = {272, 56, 296, 80};
-	rcRight[2] = {296, 56, 320, 80};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1638,19 +1655,20 @@
 //Mesa
 void ActNpc317(NPCHAR *npc)
 {
-	RECT rcLeft[4];
-	RECT rcRight[4];
+	RECT rcLeft[4] = {
+		{0, 80, 32, 120},
+		{32, 80, 64, 120},
+		{64, 80, 96, 120},
+		{96, 80, 128, 120},
+	};
 
-	rcLeft[0] = {0, 80, 32, 120};
-	rcLeft[1] = {32, 80, 64, 120};
-	rcLeft[2] = {64, 80, 96, 120};
-	rcLeft[3] = {96, 80, 128, 120};
+	RECT rcRight[4] = {
+		{0, 120, 32, 160},
+		{32, 120, 64, 160},
+		{64, 120, 96, 160},
+		{96, 120, 128, 160},
+	};
 
-	rcRight[0] = {0, 120, 32, 160};
-	rcRight[1] = {32, 120, 64, 160};
-	rcRight[2] = {64, 120, 96, 160};
-	rcRight[3] = {96, 120, 128, 160};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1732,17 +1750,18 @@
 //Mesa (dead)
 void ActNpc318(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{224, 80, 256, 120},
+		{256, 80, 288, 120},
+		{288, 80, 320, 120},
+	};
 
-	rcLeft[0] = {224, 80, 256, 120};
-	rcLeft[1] = {256, 80, 288, 120};
-	rcLeft[2] = {288, 80, 320, 120};
+	RECT rcRight[3] = {
+		{224, 120, 256, 160},
+		{256, 120, 288, 160},
+		{288, 120, 320, 160},
+	};
 
-	rcRight[0] = {224, 120, 256, 160};
-	rcRight[1] = {256, 120, 288, 160};
-	rcRight[2] = {288, 120, 320, 160};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1807,11 +1826,11 @@
 //Mesa block
 void ActNpc319(NPCHAR *npc)
 {
-	RECT rc[3];
-
-	rc[0] = {16, 0, 32, 16};
-	rc[1] = {16, 0, 32, 16};
-	rc[2] = {96, 80, 112, 96};
+	RECT rc[3] = {
+		{16, 0, 32, 16},
+		{16, 0, 32, 16},
+		{96, 80, 112, 96},
+	};
 
 	switch (npc->act_no)
 	{
--- a/src/NpcAct320.cpp
+++ b/src/NpcAct320.cpp
@@ -17,17 +17,18 @@
 //Curly (carried, shooting)
 void ActNpc320(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{16, 96, 32, 112},
+		{48, 96, 64, 112},
+		{96, 96, 112, 112},
+	};
 
-	rcLeft[0] = {16, 96, 32, 112};
-	rcLeft[1] = {48, 96, 64, 112};
-	rcLeft[2] = {96, 96, 112, 112};
+	RECT rcRight[3] = {
+		{16, 112, 32, 128},
+		{48, 112, 64, 128},
+		{96, 112, 112, 128},
+	};
 
-	rcRight[0] = {16, 112, 32, 128};
-	rcRight[1] = {48, 112, 64, 128};
-	rcRight[2] = {96, 112, 112, 128};
-
 	if (npc->act_no == 0)
 	{
 		npc->act_no = 1;
@@ -106,17 +107,18 @@
 //Curly's Nemesis
 void ActNpc321(NPCHAR *npc)
 {
-	RECT rcLeft[3];
-	RECT rcRight[3];
+	RECT rcLeft[3] = {
+		{136, 152, 152, 168},
+		{152, 152, 168, 168},
+		{168, 152, 184, 168},
+	};
 
-	rcLeft[0] = {136, 152, 152, 168};
-	rcLeft[1] = {152, 152, 168, 168};
-	rcLeft[2] = {168, 152, 184, 168};
+	RECT rcRight[3] = {
+		{136, 168, 152, 184},
+		{152, 168, 168, 184},
+		{168, 168, 184, 184},
+	};
 
-	rcRight[0] = {136, 168, 152, 184};
-	rcRight[1] = {152, 168, 168, 184};
-	rcRight[2] = {168, 168, 184, 184};
-
 	char direct;
 
 	if (npc->pNpc)
@@ -170,12 +172,12 @@
 //Deleet
 void ActNpc322(NPCHAR *npc)
 {
-	RECT rc[3];
+	RECT rc[3] = {
+		{272, 216, 296, 240},
+		{296, 216, 320, 240},
+		{160, 216, 184, 240},
+	};
 
-	rc[0] = {272, 216, 296, 240};
-	rc[1] = {296, 216, 320, 240};
-	rc[2] = {160, 216, 184, 240};
-
 	if (npc->act_no < 2 && npc->life <= 968)
 	{
 		npc->act_no = 2;
@@ -258,13 +260,13 @@
 //Bute (spinning)
 void ActNpc323(NPCHAR *npc)
 {
-	RECT rc[4];
+	RECT rc[4] = {
+		{216, 32, 232, 56},
+		{232, 32, 248, 56},
+		{216, 56, 232, 80},
+		{232, 56, 248, 80},
+	};
 
-	rc[0] = {216, 32, 232, 56};
-	rc[1] = {232, 32, 248, 56};
-	rc[2] = {216, 56, 232, 80};
-	rc[3] = {232, 56, 248, 80};
-
 	if (++npc->ani_wait > 3)
 	{
 		npc->ani_wait = 0;
@@ -367,16 +369,16 @@
 //Heavy Press lightning
 void ActNpc325(NPCHAR *npc)
 {
-	RECT rc[7];
+	RECT rc[7] = {
+		{240, 96, 272, 128},
+		{272, 96, 304, 128},
+		{240, 128, 272, 160},
+		{240, 0, 256, 96},
+		{256, 0, 272, 96},
+		{272, 0, 288, 96},
+		{288, 0, 304, 96},
+	};
 
-	rc[0] = {240, 96, 272, 128};
-	rc[1] = {272, 96, 304, 128};
-	rc[2] = {240, 128, 272, 160};
-	rc[3] = {240, 0, 256, 96};
-	rc[4] = {256, 0, 272, 96};
-	rc[5] = {272, 0, 288, 96};
-	rc[6] = {288, 0, 304, 96};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -526,37 +528,41 @@
 			break;
 	}
 	
-	RECT rcSu[8];
-	RECT rcItoh[8];
-	rcItoh[0] = {0, 128, 16, 152};
-	rcItoh[1] = {16, 128, 32, 152};
-	rcItoh[2] = {32, 128, 48, 152};
-	rcItoh[3] = {48, 128, 64, 152};
-	rcItoh[4] = {64, 128, 80, 152};
-	rcItoh[5] = {80, 128, 96, 152};
-	rcItoh[6] = {96, 128, 112, 152};
-	rcItoh[7] = {112, 128, 128, 152};
-	rcSu[0] = {128, 128, 144, 152};
-	rcSu[1] = {144, 128, 160, 152};
-	rcSu[2] = {160, 128, 176, 152};
-	rcSu[3] = {176, 128, 192, 152};
-	rcSu[4] = {192, 128, 208, 152};
-	rcSu[5] = {208, 128, 224, 152};
-	rcSu[6] = {224, 128, 240, 152};
-	rcSu[7] = {32, 152, 48, 176};
+	RECT rcItoh[8] = {
+		{0, 128, 16, 152},
+		{16, 128, 32, 152},
+		{32, 128, 48, 152},
+		{48, 128, 64, 152},
+		{64, 128, 80, 152},
+		{80, 128, 96, 152},
+		{96, 128, 112, 152},
+		{112, 128, 128, 152},
+	};
+
+	RECT rcSu[8] = {
+		{128, 128, 144, 152},
+		{144, 128, 160, 152},
+		{160, 128, 176, 152},
+		{176, 128, 192, 152},
+		{192, 128, 208, 152},
+		{208, 128, 224, 152},
+		{224, 128, 240, 152},
+		{32, 152, 48, 176},
+	};
 	
-	if (npc->direct)
-		npc->rect = rcSu[npc->ani_no];
-	else
+	if (npc->direct == 0)
 		npc->rect = rcItoh[npc->ani_no];
+	else
+		npc->rect = rcSu[npc->ani_no];
 }
 
 //Sneeze
 void ActNpc327(NPCHAR *npc)
 {
-	RECT rc[2];
-	rc[0] = {240, 80, 256, 96};
-	rc[1] = {256, 80, 272, 96};
+	RECT rc[2] = {
+		{240, 80, 256, 96},
+		{256, 80, 272, 96},
+	};
 	
 	++npc->act_wait;
 	
@@ -598,27 +604,33 @@
 //Thingy that turns Sue and Itoh into humans for 4 seconds
 void ActNpc328(NPCHAR *npc)
 {
-	npc->rect = {96, 0, 128, 48};
+	RECT rc = {96, 0, 128, 48};
+	npc->rect = rc;
 }
 
 //Laboratory fan
 void ActNpc329(NPCHAR *npc)
 {
-	if (++npc->ani_wait / 2 & 1)
-		npc->rect = {48, 0, 64, 16};
+	RECT rc[2] = {
+		{48, 0, 64, 16},
+		{64, 0, 80, 16},
+	};
+	
+	if (++npc->ani_wait / 2 % 2)
+		npc->rect = rc[0];
 	else
-		npc->rect = {64, 0, 80, 16};
+		npc->rect = rc[1];
 }
 
 //Rolling
 void ActNpc330(NPCHAR *npc)
 {
-	RECT rc[3];
+	RECT rc[3] = {
+		{144, 136, 160, 152},
+		{160, 136, 176, 152},
+		{176, 136, 192, 152},
+	};
 
-	rc[0] = {144, 136, 160, 152};
-	rc[1] = {160, 136, 176, 152};
-	rc[2] = {176, 136, 192, 152};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -696,13 +708,13 @@
 //Ballos bone projectile
 void ActNpc331(NPCHAR *npc)
 {
-	RECT rc[4];
+	RECT rc[4] = {
+		{288, 80, 304, 96},
+		{304, 80, 320, 96},
+		{288, 96, 304, 112},
+		{304, 96, 320, 112},
+	};
 
-	rc[0] = {288, 80, 304, 96};
-	rc[1] = {304, 80, 320, 96};
-	rc[2] = {288, 96, 304, 112};
-	rc[3] = {304, 96, 320, 112};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -755,12 +767,12 @@
 //Ballos shockwave
 void ActNpc332(NPCHAR *npc)
 {
-	RECT rc[3];
+	RECT rc[3] = {
+		{144, 96, 168, 120},
+		{168, 96, 192, 120},
+		{192, 96, 216, 120},
+	};
 
-	rc[0] = {144, 96, 168, 120};
-	rc[1] = {168, 96, 192, 120};
-	rc[2] = {192, 96, 216, 120};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -813,11 +825,11 @@
 //Ballos lightning
 void ActNpc333(NPCHAR *npc)
 {
-	RECT rc[2];
+	RECT rc[2] = {
+		{80, 120, 104, 144},
+		{104, 120, 128, 144},
+	};
 
-	rc[0] = {80, 120, 104, 144};
-	rc[1] = {104, 120, 128, 144};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -849,15 +861,16 @@
 //Sweat
 void ActNpc334(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{160, 184, 168, 200},
+		{168, 184, 176, 200},
+	};
 
-	rcLeft[0] = {160, 184, 168, 200};
-	rcLeft[1] = {168, 184, 176, 200};
+	RECT rcRight[2] = {
+		{176, 184, 184, 200},
+		{184, 184, 192, 200},
+	};
 
-	rcRight[0] = {176, 184, 184, 200};
-	rcRight[1] = {184, 184, 192, 200};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -895,12 +908,12 @@
 //Ikachan
 void ActNpc335(NPCHAR *npc)
 {
-	RECT rc[3];
+	RECT rc[3] = {
+		{0, 16, 16, 32},
+		{16, 16, 32, 32},
+		{32, 16, 48, 32},
+	};
 
-	rc[0] = {0, 16, 16, 32};
-	rc[1] = {16, 16, 32, 32};
-	rc[2] = {32, 16, 48, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -970,11 +983,11 @@
 //Numhachi
 void ActNpc337(NPCHAR *npc)
 {
-	RECT rcLeft[2];
+	RECT rcLeft[2] = {
+		{256, 112, 288, 152},
+		{288, 112, 320, 152},
+	};
 
-	rcLeft[0] = {256, 112, 288, 152};
-	rcLeft[1] = {288, 112, 320, 152};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1012,14 +1025,15 @@
 //Green Devil
 void ActNpc338(NPCHAR *npc)
 {
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rcLeft[2] = {
+		{288, 0, 304, 16},
+		{304, 0, 320, 16},
+	};
 
-	rcLeft[0] = {288, 0, 304, 16};
-	rcLeft[1] = {304, 0, 320, 16};
-
-	rcRight[0] = {288, 16, 304, 32};
-	rcRight[1] = {304, 16, 320, 32};
+	RECT rcRight[2] = {
+		{288, 16, 304, 32},
+		{304, 16, 320, 32},
+	};
 
 	switch (npc->act_no)
 	{
--- a/src/NpcAct340.cpp
+++ b/src/NpcAct340.cpp
@@ -521,33 +521,34 @@
 	npc->x += npc->xm;
 	npc->y += npc->ym;
 
-	RECT rcLeft[11];
-	RECT rcRight[11];
+	RECT rcLeft[11] = {
+		{0, 0, 48, 40},
+		{48, 0, 96, 40},
+		{96, 0, 144, 40},
+		{144, 0, 192, 40},
+		{192, 0, 240, 40},
+		{240, 0, 288, 40},
+		{0, 80, 48, 120},
+		{48, 80, 96, 120},
+		{96, 80, 144, 120},
+		{144, 80, 192, 120},
+		{192, 80, 240, 120},
+	};
 
-	rcLeft[0] = {0, 0, 48, 40};
-	rcLeft[1] = {48, 0, 96, 40};
-	rcLeft[2] = {96, 0, 144, 40};
-	rcLeft[3] = {144, 0, 192, 40};
-	rcLeft[4] = {192, 0, 240, 40};
-	rcLeft[5] = {240, 0, 288, 40};
-	rcLeft[6] = {0, 80, 48, 120};
-	rcLeft[7] = {48, 80, 96, 120};
-	rcLeft[8] = {96, 80, 144, 120};
-	rcLeft[9] = {144, 80, 192, 120};
-	rcLeft[10] = {192, 80, 240, 120};
+	RECT rcRight[11] = {
+		{0, 40, 48, 80},
+		{48, 40, 96, 80},
+		{96, 40, 144, 80},
+		{144, 40, 192, 80},
+		{192, 40, 240, 80},
+		{240, 40, 288, 80},
+		{0, 120, 48, 160},
+		{48, 120, 96, 160},
+		{96, 120, 144, 160},
+		{144, 120, 192, 160},
+		{192, 120, 240, 160},
+	};
 
-	rcRight[0] = {0, 40, 48, 80};
-	rcRight[1] = {48, 40, 96, 80};
-	rcRight[2] = {96, 40, 144, 80};
-	rcRight[3] = {144, 40, 192, 80};
-	rcRight[4] = {192, 40, 240, 80};
-	rcRight[5] = {240, 40, 288, 80};
-	rcRight[6] = {0, 120, 48, 160};
-	rcRight[7] = {48, 120, 96, 160};
-	rcRight[8] = {96, 120, 144, 160};
-	rcRight[9] = {144, 120, 192, 160};
-	rcRight[10] = {192, 120, 240, 160};
-
 	if (npc->direct == 0)
 		npc->rect = rcLeft[npc->ani_no];
 	else
@@ -557,12 +558,12 @@
 //Ballos 1 head
 void ActNpc341(NPCHAR *npc)
 {
-	RECT rc[3];
+	RECT rc[3] = {
+		{288, 32, 320, 48},
+		{288, 48, 320, 64},
+		{288, 64, 320, 80},
+	};
 
-	rc[0] = {288, 32, 320, 48};
-	rc[1] = {288, 48, 320, 64};
-	rc[2] = {288, 64, 320, 80};
-
 	if (npc->pNpc->act_no == 11 && npc->pNpc->act_wait > 50)
 		++npc->ani_wait;
 
@@ -585,12 +586,12 @@
 {
 	static int flash;
 
-	RECT rc[3];
+	RECT rc[3] = {
+		{240, 48, 280, 88},
+		{240, 88, 280, 128},
+		{280, 48, 320, 88},
+	};
 
-	rc[0] = {240, 48, 280, 88};
-	rc[1] = {240, 88, 280, 128};
-	rc[2] = {280, 48, 320, 88};
-
 	if (npc->act_no < 1000 && npc->pNpc->act_no >= 1000)
 		npc->act_no = 1000;
 
@@ -865,11 +866,11 @@
 //Ballos 2 eyes
 void ActNpc344(NPCHAR *npc)
 {
-	RECT rc[2];
+	RECT rc[2] = {
+		{272, 0, 296, 16},
+		{296, 0, 320, 16},
+	};
 
-	rc[0] = {272, 0, 296, 16};
-	rc[1] = {296, 0, 320, 16};
-
 	if (npc->direct == 0)
 	{
 		npc->rect = rc[0];
@@ -890,13 +891,13 @@
 //Ballos skull projectile
 void ActNpc345(NPCHAR *npc)
 {
-	RECT rc[4];
+	RECT rc[4] = {
+		{128, 176, 144, 192},
+		{144, 176, 160, 192},
+		{160, 176, 176, 192},
+		{176, 176, 192, 192},
+	};
 
-	rc[0] = {128, 176, 144, 192};
-	rc[1] = {144, 176, 160, 192};
-	rc[2] = {160, 176, 176, 192};
-	rc[3] = {176, 176, 192, 192};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1161,13 +1162,13 @@
 			break;
 	}
 
-	RECT rc[4];
+	RECT rc[4] = {
+		{256, 48, 272, 64},
+		{272, 48, 288, 64},
+		{288, 48, 304, 64},
+		{304, 48, 320, 64},
+	};
 
-	rc[0] = {256, 48, 272, 64};
-	rc[1] = {272, 48, 288, 64};
-	rc[2] = {288, 48, 304, 64};
-	rc[3] = {304, 48, 320, 64};
-
 	npc->rect = rc[npc->ani_no];
 }
 
@@ -1174,11 +1175,11 @@
 //Ballos 4 spikes
 void ActNpc348(NPCHAR *npc)
 {
-	RECT rc[2];
+	RECT rc[2] = {
+		{128, 152, 160, 176},
+		{160, 152, 192, 176},
+	};
 
-	rc[0] = {128, 152, 160, 176};
-	rc[1] = {160, 152, 192, 176};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1228,25 +1229,26 @@
 //Flying Bute archer
 void ActNpc350(NPCHAR *npc)
 {
-	RECT rcLeft[7];
-	RECT rcRight[7];
+	RECT rcLeft[7] = {
+		{0, 160, 24, 184},
+		{24, 160, 48, 184},
+		{48, 160, 72, 184},
+		{72, 160, 96, 184},
+		{96, 160, 120, 184},
+		{120, 160, 144, 184},
+		{144, 160, 168, 184},
+	};
 
-	rcLeft[0] = {0, 160, 24, 184};
-	rcLeft[1] = {24, 160, 48, 184};
-	rcLeft[2] = {48, 160, 72, 184};
-	rcLeft[3] = {72, 160, 96, 184};
-	rcLeft[4] = {96, 160, 120, 184};
-	rcLeft[5] = {120, 160, 144, 184};
-	rcLeft[6] = {144, 160, 168, 184};
+	RECT rcRight[7] = {
+		{0, 184, 24, 208},
+		{24, 184, 48, 208},
+		{48, 184, 72, 208},
+		{72, 184, 96, 208},
+		{96, 184, 120, 208},
+		{120, 184, 144, 208},
+		{144, 184, 168, 208},
+	};
 
-	rcRight[0] = {0, 184, 24, 208};
-	rcRight[1] = {24, 184, 48, 208};
-	rcRight[2] = {48, 184, 72, 208};
-	rcRight[3] = {72, 184, 96, 208};
-	rcRight[4] = {96, 184, 120, 208};
-	rcRight[5] = {120, 184, 144, 208};
-	rcRight[6] = {144, 184, 168, 208};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1409,18 +1411,18 @@
 //Statue (shootable)
 void ActNpc351(NPCHAR *npc)
 {
-	RECT rc[9];
+	RECT rc[9] = {
+		{0, 96, 32, 136},
+		{32, 96, 64, 136},
+		{64, 96, 96, 136},
+		{96, 96, 128, 136},
+		{128, 96, 160, 136},
+		{0, 176, 32, 216},
+		{32, 176, 64, 216},
+		{64, 176, 96, 216},
+		{96, 176, 128, 216},
+	};
 
-	rc[0] = {0, 96, 32, 136};
-	rc[1] = {32, 96, 64, 136};
-	rc[2] = {64, 96, 96, 136};
-	rc[3] = {96, 96, 128, 136};
-	rc[4] = {128, 96, 160, 136};
-	rc[5] = {0, 176, 32, 216};
-	rc[6] = {32, 176, 64, 216};
-	rc[7] = {64, 176, 96, 216};
-	rc[8] = {96, 176, 128, 216};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1525,7 +1527,7 @@
 			break;
 	}
 	
-	static RECT rc[28] = {
+	RECT rc[28] = {
 		{304, 48, 320, 64},
 		{224, 48, 240, 64},
 		{32, 80, 48, 96},
@@ -1562,21 +1564,23 @@
 //Bute with sword (flying)
 void ActNpc353(NPCHAR *npc)
 {
-	RECT rc[4];
-	RECT rcLeft[2];
-	RECT rcRight[2];
+	RECT rc[4] = {
+		{168, 160, 184, 184},
+		{184, 160, 200, 184},
+		{168, 184, 184, 208},
+		{184, 184, 200, 208},
+	};
 
-	rc[0] = {168, 160, 184, 184};
-	rc[1] = {184, 160, 200, 184};
-	rc[2] = {168, 184, 184, 208};
-	rc[3] = {184, 184, 200, 208};
+	RECT rcLeft[2] = {
+		{200, 160, 216, 176},
+		{216, 160, 232, 176},
+	};
 
-	rcLeft[0] = {200, 160, 216, 176};
-	rcLeft[1] = {216, 160, 232, 176};
+	RECT rcRight[2] = {
+		{200, 176, 216, 192},
+		{216, 176, 232, 192},
+	};
 
-	rcRight[0] = {200, 176, 216, 192};
-	rcRight[1] = {216, 176, 232, 192};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1735,13 +1739,13 @@
 //Quote and Curly on Balrog's back
 void ActNpc355(NPCHAR *npc)
 {
-	RECT rc[4];
+	RECT rc[4] = {
+		{80, 16, 96, 32},
+		{80, 96, 96, 112},
+		{128, 16, 144, 32},
+		{208, 96, 224, 112},
+	};
 
-	rc[0] = {80, 16, 96, 32};
-	rc[1] = {80, 96, 96, 112};
-	rc[2] = {128, 16, 144, 32};
-	rc[3] = {208, 96, 224, 112};
-
 	if (npc->act_no == 0)
 	{
 		switch (npc->direct)
@@ -1782,11 +1786,11 @@
 //Balrog rescue
 void ActNpc356(NPCHAR *npc)
 {
-	RECT rcRight[2];
+	RECT rcRight[2] = {
+		{240, 128, 280, 152},
+		{240, 152, 280, 176},
+	};
 
-	rcRight[0] = {240, 128, 280, 152};
-	rcRight[1] = {240, 152, 280, 176};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1886,14 +1890,14 @@
 //Misery (stood in the wind during the credits)
 void ActNpc358(NPCHAR *npc)
 {
-	RECT rc[5];
+	RECT rc[5] = {
+		{208, 8, 224, 32},
+		{224, 8, 240, 32},
+		{240, 8, 256, 32},
+		{256, 8, 272, 32},
+		{272, 8, 288, 32},
+	};
 
-	rc[0] = {208, 8, 224, 32};
-	rc[1] = {224, 8, 240, 32};
-	rc[2] = {240, 8, 256, 32};
-	rc[3] = {256, 8, 272, 32};
-	rc[4] = {272, 8, 288, 32};
-
 	switch (npc->act_no)
 	{
 		case 0:
@@ -1934,7 +1938,9 @@
 //Thank you
 void ActNpc360(NPCHAR *npc)
 {
-	if (!npc->act_no)
+	RECT rc = {0, 176, 48, 184};
+
+	if (npc->act_no == 0)
 	{
 		++npc->act_no;
 		npc->x -= 0x1000;
@@ -1941,5 +1947,5 @@
 		npc->y -= 0x1000;
 	}
 	
-	npc->rect = {0, 176, 48, 184};
+	npc->rect = rc;
 }
--- a/src/SelStage.cpp
+++ b/src/SelStage.cpp
@@ -94,14 +94,14 @@
 {
 	static unsigned int flash;
 
-	RECT rcView;
-	RECT rcCur[2];
-	RECT rcTitle1;
+	RECT rcView = {0, 0, WINDOW_WIDTH, WINDOW_HEIGHT};
 
-	rcView = {0, 0, WINDOW_WIDTH, WINDOW_HEIGHT};
-	rcCur[0] = {80, 88, 112, 104};
-	rcCur[1] = {80, 104, 112, 120};
-	rcTitle1 = {80, 64, 144, 72};
+	RECT rcCur[2] = {
+		{80, 88, 112, 104},
+		{80, 104, 112, 120},
+	};
+
+	RECT rcTitle1 = {80, 64, 144, 72};
 
 	if (gStageSelectTitleY > (WINDOW_HEIGHT / 2) - 74)
 		--gStageSelectTitleY;
--- a/src/Star.cpp
+++ b/src/Star.cpp
@@ -112,10 +112,11 @@
 
 void PutStar(int fx, int fy)
 {
-	RECT rc[3];
-	rc[0] = {192, 0, 200, 8};
-	rc[1] = {192, 8, 200, 16};
-	rc[2] = {192, 16, 200, 24};
+	RECT rc[3] = {
+		{192, 0, 200, 8},
+		{192, 8, 200, 16},
+		{192, 16, 200, 24},
+	};
 	
 	if (!(gMC.cond & 2) && (gMC.equip & 0x80))
 	{
--- a/src/ValueView.cpp
+++ b/src/ValueView.cpp
@@ -85,27 +85,28 @@
 	gVV[index].rect.right = 40;
 	gVV[index].rect.bottom = 8 * (index + 1);
 	
-	RECT rect[20];
-	rect[0] = {0, 56, 8, 64};
-	rect[1] = {8, 56, 16, 64};
-	rect[2] = {16, 56, 24, 64};
-	rect[3] = {24, 56, 32, 64};
-	rect[4] = {32, 56, 40, 64};
-	rect[5] = {40, 56, 48, 64};
-	rect[6] = {48, 56, 56, 64};
-	rect[7] = {56, 56, 64, 64};
-	rect[8] = {64, 56, 72, 64};
-	rect[9] = {72, 56, 80, 64};
-	rect[10] = {0, 64, 8, 72};
-	rect[11] = {8, 64, 16, 72};
-	rect[12] = {16, 64, 24, 72};
-	rect[13] = {24, 64, 32, 72};
-	rect[14] = {32, 64, 40, 72};
-	rect[15] = {40, 64, 48, 72};
-	rect[16] = {48, 64, 56, 72};
-	rect[17] = {56, 64, 64, 72};
-	rect[18] = {64, 64, 72, 72};
-	rect[19] = {72, 64, 80, 72};
+	RECT rect[20] = {
+		{0, 56, 8, 64},
+		{8, 56, 16, 64},
+		{16, 56, 24, 64},
+		{24, 56, 32, 64},
+		{32, 56, 40, 64},
+		{40, 56, 48, 64},
+		{48, 56, 56, 64},
+		{56, 56, 64, 64},
+		{64, 56, 72, 64},
+		{72, 56, 80, 64},
+		{0, 64, 8, 72},
+		{8, 64, 16, 72},
+		{16, 64, 24, 72},
+		{24, 64, 32, 72},
+		{32, 64, 40, 72},
+		{40, 64, 48, 72},
+		{48, 64, 56, 72},
+		{56, 64, 64, 72},
+		{64, 64, 72, 72},
+		{72, 64, 80, 72},
+	};
 	
 	//Get digits
 	int dig[4];