I LOVE STEALING PIRACY STEALING LURAICHU'S CODE FROM RECSBR - https://github.com/BTTRG/recsbr
This commit is contained in:
		
							parent
							
								
									88b7892c26
								
							
						
					
					
						commit
						3bedf7136a
					
				
					 27 changed files with 501 additions and 234 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 10 KiB | 
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 5.1 KiB | 
							
								
								
									
										
											BIN
										
									
								
								game_english/data/Wav/BladeShoot.wav
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								game_english/data/Wav/BladeShoot.wav
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								game_english/data/Wav/Cursor.wav
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								game_english/data/Wav/Cursor.wav
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								game_english/data/Wav/EnemyHurt.wav
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								game_english/data/Wav/EnemyHurt.wav
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								game_english/data/Wav/Go.wav
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								game_english/data/Wav/Go.wav
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								game_english/data/Wav/Hurt.wav
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								game_english/data/Wav/Hurt.wav
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								game_english/data/Wav/Message.wav
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								game_english/data/Wav/Message.wav
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								game_english/data/Wav/Select.wav
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								game_english/data/Wav/Select.wav
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								game_english/data/Wav/Shatter.wav
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								game_english/data/Wav/Shatter.wav
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								game_english/data/Wav/Shoot.wav
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								game_english/data/Wav/Shoot.wav
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								game_english/data/Wav/YesNo.wav
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								game_english/data/Wav/YesNo.wav
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										212
									
								
								src/Caret.cpp
									
										
									
									
									
								
							
							
						
						
									
										212
									
								
								src/Caret.cpp
									
										
									
									
									
								
							|  | @ -7,10 +7,11 @@ | |||
| #include "Draw.h" | ||||
| #include "Game.h" | ||||
| #include "Triangle.h" | ||||
| #include "Map.h" | ||||
| 
 | ||||
| CARET gCrt[CARET_MAX]; | ||||
| 
 | ||||
| CARET_TABLE gCaretTable[18] = { | ||||
| CARET_TABLE gCaretTable[24] = { | ||||
| 	{0, 0}, | ||||
| 	{0x800, 0x800}, | ||||
| 	{0x1000, 0x1000}, | ||||
|  | @ -28,7 +29,13 @@ CARET_TABLE gCaretTable[18] = { | |||
| 	{0x2800, 0x2800}, | ||||
| 	{0x800, 0x800}, | ||||
| 	{0x2800, 0x800}, | ||||
| 	{0x6800, 0x800} | ||||
| 	{0x6800, 0x800}, | ||||
| 	{0x1000, 0x1000}, | ||||
| 	{0x1000, 0x1000}, | ||||
| 	{0x1000, 0x1000}, | ||||
| 	{0x800, 0x800}, | ||||
| 	{0x800, 0x800}, | ||||
| 	{0x800, 0x800}, | ||||
| }; | ||||
| 
 | ||||
| void InitCaret(void) | ||||
|  | @ -249,7 +256,7 @@ void ActCaret05(CARET *crt) | |||
| 	crt->rect = rect[crt->ani_no]; | ||||
| } | ||||
| 
 | ||||
| void ActCaret07(CARET *crt) | ||||
| void ActCaret07(CARET *crt) // Booster smoke
 | ||||
| { | ||||
| 	RECT rcLeft[7] = { | ||||
| 		{56, 0, 64, 8}, | ||||
|  | @ -401,16 +408,20 @@ void ActCaret11(CARET *crt) | |||
| 
 | ||||
| void ActCaret12(CARET *crt) | ||||
| { | ||||
| 	RECT rcLeft[2] = { | ||||
| 	RECT rcLeft[5] = { | ||||
| 		{0, 193, 32, 225}, | ||||
| 		{112, 0, 144, 32}, | ||||
| 		{64, 192, 96, 225}, | ||||
| 		{144, 0, 176, 32}, | ||||
| 		//{144, 192, 176, 225},
 | ||||
| 		{184, 192, 216, 225}, | ||||
| 	}; | ||||
| 
 | ||||
| 	if (++crt->ani_wait > 2) | ||||
| 	{ | ||||
| 		crt->ani_wait = 0; | ||||
| 
 | ||||
| 		if (++crt->ani_no > 1) | ||||
| 		if (++crt->ani_no > 4) | ||||
| 		{ | ||||
| 			crt->cond = 0; | ||||
| 		#ifdef FIX_BUGS | ||||
|  | @ -549,8 +560,191 @@ void ActCaret17(CARET *crt) | |||
| 		crt->rect = rcLeft[1]; | ||||
| } | ||||
| 
 | ||||
| void ActCaret18(CARET* crt) | ||||
| { | ||||
| 	RECT rcLeft[7] = { | ||||
| 		{0, 153, 16, 169}, | ||||
| 		{16, 153, 32, 169}, | ||||
| 		{32, 153, 48, 169}, | ||||
| 		{48, 153, 64, 169}, | ||||
| 		{64, 153, 80, 169}, | ||||
| 		{80, 153, 96, 169}, | ||||
| 		{96, 153, 112, 169} | ||||
| 	}; | ||||
| 
 | ||||
| 	switch (crt->act_no) | ||||
| 	{ | ||||
| 	case 0: | ||||
| 		crt->ym = Random(-0x500, 0x500); | ||||
| 		crt->xm = Random(-0x500, 0x500); | ||||
| 		crt->act_no = 1; | ||||
| 	case 1: | ||||
| 		crt->ym += 0x20; | ||||
| 		crt->rect = rcLeft[crt->ani_no]; | ||||
| 		 | ||||
| 		break; | ||||
| 	} | ||||
| 
 | ||||
| 	crt->x += crt->xm; | ||||
| 	crt->y += crt->ym; | ||||
| 
 | ||||
| 	//crt->rect = rcLeft[0];
 | ||||
| 	crt->rect = rcLeft[crt->ani_no]; | ||||
| 	if (++crt->ani_wait > 6) // Animation counter, how many frames until we advance to next frame
 | ||||
| 	{ | ||||
| 		crt->ani_wait = 0; // Reset counter
 | ||||
| 		++crt->ani_no; // Increase animation frame by one
 | ||||
| 	} | ||||
| 	if (crt->ani_no > 6) | ||||
| 	{ | ||||
| 		crt->cond = 0; | ||||
| 		return; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| void ActCaret19(CARET* crt) | ||||
| { | ||||
| 	RECT rect[4] = { | ||||
| 		{112, 32, 128, 48}, | ||||
| 		{128, 32, 144, 48}, | ||||
| 		{144, 32, 160, 48}, | ||||
| 		{160, 32, 176, 48}, | ||||
| 	}; | ||||
| 
 | ||||
| 	if (++crt->ani_wait > 2) | ||||
| 	{ | ||||
| 		crt->ani_wait = 0; | ||||
| 
 | ||||
| 		if (++crt->ani_no > 3) | ||||
| 		{ | ||||
| 			crt->cond = 0; | ||||
| #ifdef FIX_BUGS | ||||
| 			return;	// The code below will use 'ani_no' to access 'rect', even though it's now too high
 | ||||
| #endif | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	crt->rect = rect[crt->ani_no]; | ||||
| } | ||||
| 
 | ||||
| void ActCaret20(CARET* crt) // Splash caret
 | ||||
| { | ||||
| 	RECT rect[4] = { | ||||
| 		{0, 65, 8, 72}, | ||||
| 		{8, 65, 16, 72}, | ||||
| 		{16, 65, 24, 72}, | ||||
| 		{24, 65, 32, 72}, | ||||
| 
 | ||||
| 	}; | ||||
| 	//crt->ym += 0x20;
 | ||||
| 	//crt->ani_no = Random(0, 4);
 | ||||
| 	crt->rect = rect[crt->ani_no]; | ||||
| 	if (++crt->ani_wait > 6) // Animation counter, how many frames until we advance to next frame
 | ||||
| 	{ | ||||
| 		crt->ani_wait = 0; // Reset counter
 | ||||
| 		++crt->ani_no; // Increase animation frame by one
 | ||||
| 	} | ||||
| 	if (crt->ani_no > 3) | ||||
| 	{ | ||||
| 		crt->ani_no = 3; | ||||
| 		crt->cond = 0; | ||||
| 	} | ||||
| 
 | ||||
| 	switch (crt->act_no) | ||||
| 	{ | ||||
| 	case 0: | ||||
| 		crt->ym = Random(-0x200, 0x80); | ||||
| 		crt->xm = Random(-0x200, 0x200); | ||||
| 		crt->act_no = 1; | ||||
| 	case 1: | ||||
| 		crt->ym += 0x20; | ||||
| 		crt->rect = rect[crt->ani_no]; | ||||
| 		 | ||||
| 		break; | ||||
| 	} | ||||
| 
 | ||||
| 	if (crt->ym > 0x5FF) | ||||
| 		crt->ym = 0x5FF; | ||||
| 	crt->x += crt->xm; | ||||
| 	crt->y += crt->ym; | ||||
|      | ||||
| 	crt->rect = rect[crt->ani_no]; | ||||
| 
 | ||||
| 	if (crt->direct == 2) | ||||
| 	{ | ||||
| 		crt->rect.top += 2; | ||||
| 		crt->rect.bottom += 2; | ||||
| 	} | ||||
| 
 | ||||
| 	/*if (++crt->act_wait > 10)
 | ||||
| 	{ | ||||
| 		if (crt->flag & 1) | ||||
| 			crt->cond = 0; | ||||
| 		if (crt->flag & 4) | ||||
| 			crt->cond = 0; | ||||
| 		if (crt->flag & 8) | ||||
| 			crt->cond = 0; | ||||
| 		if (crt->flag & 0x100) | ||||
| 			crt->cond = 0; | ||||
| 	}*/ | ||||
| 
 | ||||
| 	if (crt->y > gMap.length * 0x200 * 0x10) | ||||
| 		crt->cond = 0; | ||||
| } | ||||
| void ActCaret21(CARET* crt) | ||||
| { | ||||
| 	RECT rect[1] = { | ||||
| 		{128, 120, 136, 128}, | ||||
| 	}; | ||||
| 
 | ||||
| 	if (++crt->count1 > 30) | ||||
| 		crt->cond = 0; | ||||
| 
 | ||||
| 	if (crt->count1 < 3) | ||||
| 		crt->ym = -8 * 0x200; | ||||
| 	else | ||||
| 		crt->ym = 0; | ||||
| 
 | ||||
| 	crt->y += crt->ym; | ||||
| 	crt->rect = rect[crt->ani_no]; | ||||
| } | ||||
| // I FUCKING HATE THIS
 | ||||
| void ActCaret22(CARET* crt) | ||||
| { | ||||
| 	RECT rect[1] = { | ||||
| 		{136, 120, 144, 128}, | ||||
| 	}; | ||||
| 
 | ||||
| 	if (++crt->count1 > 30) | ||||
| 		crt->cond = 0; | ||||
| 
 | ||||
| 	if (crt->count1 < 3) | ||||
| 		crt->ym = -8 * 0x200; | ||||
| 	else | ||||
| 		crt->ym = 0; | ||||
| 
 | ||||
| 	crt->y += crt->ym; | ||||
| 	crt->rect = rect[crt->ani_no]; | ||||
| } | ||||
| void ActCaret23(CARET* crt) | ||||
| { | ||||
| 	RECT rect[1] = { | ||||
| 		{144, 120, 152, 128}, | ||||
| 	}; | ||||
| 
 | ||||
| 	if (++crt->count1 > 30) | ||||
| 		crt->cond = 0; | ||||
| 
 | ||||
| 	if (crt->count1 < 3) | ||||
| 		crt->ym = -8 * 0x200; | ||||
| 	else | ||||
| 		crt->ym = 0; | ||||
| 
 | ||||
| 	crt->y += crt->ym; | ||||
| 	crt->rect = rect[crt->ani_no]; | ||||
| } | ||||
| typedef void (*CARETFUNCTION)(CARET*); | ||||
| CARETFUNCTION gpCaretFuncTbl[18] = | ||||
| CARETFUNCTION gpCaretFuncTbl[24] = | ||||
| { | ||||
| 	ActCaret00, | ||||
| 	ActCaret01, | ||||
|  | @ -570,6 +764,12 @@ CARETFUNCTION gpCaretFuncTbl[18] = | |||
| 	ActCaret15, | ||||
| 	ActCaret16, | ||||
| 	ActCaret17, | ||||
| 	ActCaret18, | ||||
| 	ActCaret19, | ||||
| 	ActCaret20, | ||||
| 	ActCaret21, | ||||
| 	ActCaret22, | ||||
| 	ActCaret23, | ||||
| }; | ||||
| 
 | ||||
| void ActCaret(void) | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| 
 | ||||
| #include "WindowsWrapper.h" | ||||
| 
 | ||||
| #define CARET_MAX 0x40 | ||||
| #define CARET_MAX 0x43 | ||||
| 
 | ||||
| struct CARET_TABLE | ||||
| { | ||||
|  | @ -25,11 +25,13 @@ struct CARET | |||
| 	int ani_wait; | ||||
| 	int view_left; | ||||
| 	int view_top; | ||||
| 	int count1; | ||||
| 	int count2; | ||||
| 	RECT rect; | ||||
| }; | ||||
| 
 | ||||
| extern CARET gCrt[CARET_MAX]; | ||||
| extern CARET_TABLE gCaretTable[18]; | ||||
| extern CARET_TABLE gCaretTable[24]; | ||||
| 
 | ||||
| void InitCaret(void); | ||||
| void ActCaret(void); | ||||
|  |  | |||
|  | @ -748,6 +748,7 @@ static int ModeAction(void) | |||
| 		if (g_GameFlags & 2) | ||||
| 		{ | ||||
| 			PutMyLife(TRUE); | ||||
| 			PutCion(); | ||||
| 			PutArmsEnergy(TRUE); | ||||
| 			PutMyAir((WINDOW_WIDTH / 2) - 40, (WINDOW_HEIGHT / 2) - 16); | ||||
| 			PutActiveArmsList(); | ||||
|  |  | |||
|  | @ -19,7 +19,8 @@ | |||
| enum | ||||
| { | ||||
| 	SOUND_TYPE_PIXTONE, | ||||
| 	SOUND_TYPE_OTHER | ||||
| 	SOUND_TYPE_OTHER, | ||||
| 	SOUND_TYPE_DABABYAUDIO | ||||
| }; | ||||
| 
 | ||||
| static const struct | ||||
|  | @ -28,93 +29,94 @@ static const struct | |||
| 	const char *path; | ||||
| 	int type; | ||||
| } ptp_table[] = { | ||||
| 	// TODO - Name the files
 | ||||
| 	{1, "PixTone/001.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{2, "PixTone/002.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{3, "PixTone/003.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{4, "PixTone/004.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{5, "PixTone/005.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{6, "PixTone/006.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{7, "PixTone/007.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{11, "PixTone/011.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{12, "PixTone/012.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{14, "PixTone/014.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{15, "PixTone/015.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{16, "PixTone/016.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{17, "PixTone/017.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{18, "PixTone/018.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{20, "PixTone/020.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{21, "PixTone/021.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{22, "PixTone/022.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{23, "PixTone/023.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{24, "PixTone/024.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{25, "PixTone/025.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{26, "PixTone/026.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{27, "PixTone/027.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{28, "PixTone/028.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{29, "PixTone/029.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{30, "PixTone/030.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{31, "PixTone/031.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{32, "PixTone/032.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{33, "PixTone/033.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{34, "PixTone/034.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{35, "PixTone/035.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{37, "PixTone/037.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{38, "PixTone/038.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{39, "PixTone/039.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{40, "PixTone/040.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{41, "PixTone/041.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{42, "PixTone/042.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{43, "PixTone/043.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{44, "PixTone/044.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{45, "PixTone/045.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{46, "PixTone/046.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{47, "PixTone/047.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{48, "PixTone/048.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{49, "PixTone/049.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{50, "PixTone/050.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{51, "PixTone/051.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{52, "PixTone/052.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{53, "PixTone/053.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{54, "PixTone/054.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{55, "PixTone/055.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{56, "PixTone/056.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{57, "PixTone/057.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{58, "PixTone/058.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{59, "PixTone/059.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{60, "PixTone/060.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{61, "PixTone/061.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{62, "PixTone/062.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{63, "PixTone/063.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{64, "PixTone/064.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{65, "PixTone/065.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{70, "PixTone/070.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{71, "PixTone/071.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{72, "PixTone/072.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{100, "PixTone/100.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{101, "PixTone/101.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{102, "PixTone/102.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{103, "PixTone/103.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{104, "PixTone/104.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{105, "PixTone/105.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{106, "PixTone/106.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{107, "PixTone/107.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{108, "PixTone/108.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{109, "PixTone/109.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{110, "PixTone/110.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{111, "PixTone/111.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{112, "PixTone/112.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{113, "PixTone/113.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{114, "PixTone/114.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{115, "PixTone/115.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{116, "PixTone/116.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{117, "PixTone/117.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	// TODO - Remove names
 | ||||
| 	{1, "PixTone/007.pxt", SOUND_TYPE_PIXTONE}, //menu move blip
 | ||||
| 	{2, "Wav/Message.wav", SOUND_TYPE_OTHER}, //msg blip
 | ||||
| 	{3, "PixTone/003.pxt", SOUND_TYPE_PIXTONE}, //bonkhead
 | ||||
| 	{4, "PixTone/004.pxt", SOUND_TYPE_PIXTONE}, //switch weapon
 | ||||
| 	{5, "Wav/YesNo.wav", SOUND_TYPE_OTHER}, //menu prompt
 | ||||
| 	{6, "PixTone/006.pxt", SOUND_TYPE_PIXTONE}, //critter hop(?)
 | ||||
| 	{7, "PixTone/007.pxt", SOUND_TYPE_PIXTONE}, //nothing, DO NOT EDIT OR I'LL KILL YOU
 | ||||
| 	{11, "PixTone/011.pxt", SOUND_TYPE_PIXTONE},//swell sound, used in ballos fight
 | ||||
| 	{12, "PixTone/012.pxt", SOUND_TYPE_PIXTONE},//door
 | ||||
| 	{14, "PixTone/045.pxt", SOUND_TYPE_PIXTONE},//destroy snack block
 | ||||
| 	{15, "PixTone/015.pxt", SOUND_TYPE_PIXTONE},//touch exp dorito
 | ||||
| 	{16, "Wav/Hurt.wav", SOUND_TYPE_OTHER},//jump
 | ||||
| 	{17, "PixTone/007.pxt", SOUND_TYPE_PIXTONE},//hurt
 | ||||
| 	{18, "Wav/Select.wav", SOUND_TYPE_OTHER},//RIP
 | ||||
| 	{20, "PixTone/020.pxt", SOUND_TYPE_PIXTONE},//menu select
 | ||||
| 	{21, "PixTone/021.pxt", SOUND_TYPE_PIXTONE},//health refill
 | ||||
| 	{22, "PixTone/022.pxt", SOUND_TYPE_PIXTONE},//bubble
 | ||||
| 	{23, "PixTone/023.pxt", SOUND_TYPE_PIXTONE},//chest open
 | ||||
| 	{24, "PixTone/024.pxt", SOUND_TYPE_PIXTONE},//quote thud
 | ||||
| 	{25, "PixTone/025.pxt", SOUND_TYPE_PIXTONE},//walking
 | ||||
| 	{26, "PixTone/026.pxt", SOUND_TYPE_PIXTONE},//funne explosion!
 | ||||
| 	{27, "PixTone/027.pxt", SOUND_TYPE_PIXTONE},//quake (BOMMMMMMM)
 | ||||
| 	{28, "PixTone/028.pxt", SOUND_TYPE_PIXTONE},//level up
 | ||||
| 	{29, "PixTone/029.pxt", SOUND_TYPE_PIXTONE},//shot hit
 | ||||
| 	{30, "PixTone/030.pxt", SOUND_TYPE_PIXTONE},//teleporter sound effect
 | ||||
| 	{31, "PixTone/031.pxt", SOUND_TYPE_PIXTONE},//critter jump
 | ||||
| 	{32, "PixTone/032.pxt", SOUND_TYPE_PIXTONE},//shot bounce, played when shooting an an invincible enemy (clink!)
 | ||||
| 	{33, "PixTone/033.pxt", SOUND_TYPE_PIXTONE},//polar star shot level 1-2
 | ||||
| 	{34, "PixTone/034.pxt", SOUND_TYPE_PIXTONE},//woooosh sound, I think this has something to do with a weapon
 | ||||
| 	{35, "PixTone/035.pxt", SOUND_TYPE_PIXTONE},//fireball shot
 | ||||
| 	{37, "PixTone/037.pxt", SOUND_TYPE_PIXTONE},//fat ass explosion
 | ||||
| 	{38, "PixTone/038.pxt", SOUND_TYPE_PIXTONE},//no ammo
 | ||||
| 	{39, "Wav/Shoot.wav", SOUND_TYPE_OTHER},//get item
 | ||||
| 	{40, "PixTone/040.pxt", SOUND_TYPE_PIXTONE},//labyrinth critter fire bubble (I think)
 | ||||
| 	{41, "PixTone/041.pxt", SOUND_TYPE_PIXTONE},//Waterway stream
 | ||||
| 	{42, "PixTone/042.pxt", SOUND_TYPE_PIXTONE},//get missle
 | ||||
| 	{43, "PixTone/043.pxt", SOUND_TYPE_PIXTONE},//computer bep
 | ||||
| 	{44, "PixTone/044.pxt", SOUND_TYPE_PIXTONE},//missle hit
 | ||||
| 	{45, "PixTone/045.pxt", SOUND_TYPE_PIXTONE},//xp dorito bounce
 | ||||
| 	{46, "PixTone/046.pxt", SOUND_TYPE_PIXTONE},//ironH shot fly
 | ||||
| 	{47, "PixTone/047.pxt", SOUND_TYPE_PIXTONE},//fast, short explosion (explosion2)
 | ||||
| 	{48, "PixTone/048.pxt", SOUND_TYPE_PIXTONE},//bubbler lv. 1 shot
 | ||||
| 	{49, "PixTone/049.pxt", SOUND_TYPE_PIXTONE},//lv. 3 polar star shot
 | ||||
| 	{50, "PixTone/050.pxt", SOUND_TYPE_PIXTONE},//mimiga death squeak
 | ||||
| 	{51, "Wav/EnemyHurt.wav", SOUND_TYPE_OTHER},//enemy hurt
 | ||||
| 	{52, "Wav/EnemyHurt.wav", SOUND_TYPE_OTHER},//big enemy hurt
 | ||||
| 	{53, "Wav/EnemyHurt.wav", SOUND_TYPE_OTHER},//small enemy hurt
 | ||||
| 	{54, "Wav/EnemyHurt.wav", SOUND_TYPE_OTHER},//"cool" enemy hurt
 | ||||
| 	{55, "PixTone/055.pxt", SOUND_TYPE_PIXTONE},//another enemy squeak
 | ||||
| 	//{56, "PixTone/056.pxt", SOUND_TYPE_PIXTONE},//watersplash
 | ||||
| 	{57, "PixTone/057.pxt", SOUND_TYPE_PIXTONE},//weird and fast enemy hurt sfct
 | ||||
| 	{58, "PixTone/058.pxt", SOUND_TYPE_PIXTONE},//short noise???
 | ||||
| 	{59, "PixTone/059.pxt", SOUND_TYPE_PIXTONE},//spur charge 1
 | ||||
| 	{60, "PixTone/060.pxt", SOUND_TYPE_PIXTONE},//spur charge 2
 | ||||
| 	{61, "PixTone/061.pxt", SOUND_TYPE_PIXTONE},//spur charge 3
 | ||||
| 	{62, "PixTone/062.pxt", SOUND_TYPE_PIXTONE},//spur fire lv. 2
 | ||||
| 	{63, "PixTone/063.pxt", SOUND_TYPE_PIXTONE},//spur fire lv. 3
 | ||||
| 	{64, "PixTone/064.pxt", SOUND_TYPE_PIXTONE},//spur fire MAX
 | ||||
| 	{65, "PixTone/065.pxt", SOUND_TYPE_PIXTONE},//Honey, your spur is fully charged
 | ||||
| 	{70, "Wav/Shatter.wav", SOUND_TYPE_OTHER},//small explosion
 | ||||
| 	{71, "PixTone/071.pxt", SOUND_TYPE_PIXTONE},//lil crash
 | ||||
| 	{72, "PixTone/072.pxt", SOUND_TYPE_PIXTONE},//fat ass crash
 | ||||
| 	{100, "PixTone/100.pxt", SOUND_TYPE_PIXTONE},//I have no idea, sounds like a click
 | ||||
| 	{101, "PixTone/101.pxt", SOUND_TYPE_PIXTONE},//Lightning strike (RIP king fly high)
 | ||||
| 	{102, "PixTone/102.pxt", SOUND_TYPE_PIXTONE},//"jaws"
 | ||||
| 	{103, "PixTone/103.pxt", SOUND_TYPE_PIXTONE},//curly charges her gun
 | ||||
| 	{104, "PixTone/104.pxt", SOUND_TYPE_PIXTONE},//I have no idea, sounds like a squeal
 | ||||
| 	{105, "PixTone/105.pxt", SOUND_TYPE_PIXTONE},//puppy bark
 | ||||
| 	{106, "PixTone/106.pxt", SOUND_TYPE_PIXTONE},//blade shot
 | ||||
| 	{107, "PixTone/107.pxt", SOUND_TYPE_PIXTONE},//block move LMAO
 | ||||
| 	{108, "PixTone/108.pxt", SOUND_TYPE_PIXTONE},//idk, sounds like a large enemy hop or a fart
 | ||||
| 	{109, "PixTone/109.pxt", SOUND_TYPE_PIXTONE},//critter FLY
 | ||||
| 	{110, "PixTone/110.pxt", SOUND_TYPE_PIXTONE},//idk, click
 | ||||
| 	{111, "PixTone/111.pxt", SOUND_TYPE_PIXTONE},//idk, low pitched thud
 | ||||
| 	{112, "PixTone/112.pxt", SOUND_TYPE_PIXTONE},//idk, slightly higher pitched thud
 | ||||
| 	{113, "PixTone/113.pxt", SOUND_TYPE_PIXTONE},//booster
 | ||||
| 	{114, "PixTone/114.pxt", SOUND_TYPE_PIXTONE},//ALERT: CORE IS WOUNDED, CORE IS WOUNDED
 | ||||
| 	{115, "PixTone/115.pxt", SOUND_TYPE_PIXTONE},//Core thrusting towards your ass
 | ||||
| 	{116, "PixTone/116.pxt", SOUND_TYPE_PIXTONE},//epic idk sound
 | ||||
| 	{117, "PixTone/117.pxt", SOUND_TYPE_PIXTONE},//idk sound
 | ||||
| 	{150, "PixTone/150.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{151, "PixTone/151.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{152, "PixTone/152.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{153, "PixTone/153.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{154, "PixTone/154.pxt", SOUND_TYPE_PIXTONE}, | ||||
| 	{155, "PixTone/155.pxt", SOUND_TYPE_PIXTONE} | ||||
| 
 | ||||
| }; | ||||
| 
 | ||||
| // Original decompiled from `PTone103.exe` - has since been modified
 | ||||
|  | @ -186,6 +188,7 @@ static BOOL LoadPixToneFile(const char *filename, PIXTONEPARAMETER *pixtone_para | |||
| 			p += increment; | ||||
| 			sscanf(p, "cy      :%d\n\n%n", &pixtone_parameters[i].pointCy, &increment); | ||||
| 			p += increment; | ||||
| 			 | ||||
| 		} | ||||
| 
 | ||||
| 		free(file_buffer); | ||||
|  | @ -196,6 +199,7 @@ static BOOL LoadPixToneFile(const char *filename, PIXTONEPARAMETER *pixtone_para | |||
| 	return success; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| BOOL LoadGenericData(void) | ||||
| { | ||||
| 	int pt_size; | ||||
|  | @ -236,6 +240,13 @@ BOOL LoadGenericData(void) | |||
| 	if (bError) | ||||
| 		return FALSE; | ||||
| 	 | ||||
|     LoadSoundObject("data/PixTone/150.wav", 150); | ||||
|     LoadSoundObject("data/PixTone/151.wav", 151); | ||||
|     LoadSoundObject("data/PixTone/152.wav", 152); | ||||
|     LoadSoundObject("data/PixTone/153.wav", 153); | ||||
|     LoadSoundObject("data/PixTone/154.wav", 154); | ||||
|     LoadSoundObject("data/PixTone/155.wav", 155); | ||||
| 
 | ||||
| 	MakeSurface_Generic(WINDOW_WIDTH, WINDOW_HEIGHT, SURFACE_ID_SCREEN_GRAB, TRUE); | ||||
| 	MakeSurface_Generic(320, 240, SURFACE_ID_LEVEL_BACKGROUND, FALSE); | ||||
| 	MakeSurface_Generic(WINDOW_WIDTH, WINDOW_HEIGHT, SURFACE_ID_MAP, TRUE); | ||||
|  | @ -246,7 +257,6 @@ BOOL LoadGenericData(void) | |||
| 	MakeSurface_Generic(320, 240, SURFACE_ID_LEVEL_SPRITESET_1, FALSE); | ||||
| 	MakeSurface_Generic(320, 240, SURFACE_ID_LEVEL_SPRITESET_2, FALSE); | ||||
| 	MakeSurface_Generic(320, 16 * (MAX_STRIP - 1), SURFACE_ID_CREDIT_CAST, FALSE); | ||||
| 
 | ||||
| 	pt_size = 0; | ||||
| 
 | ||||
| 	for (unsigned int i = 0; i < sizeof(ptp_table) / sizeof(ptp_table[0]); ++i) | ||||
|  | @ -265,6 +275,7 @@ BOOL LoadGenericData(void) | |||
| 						++ptp_num; | ||||
| 
 | ||||
| 					pt_size += MakePixToneObject(pixtone_parameters, ptp_num, ptp_table[i].slot); | ||||
| 
 | ||||
| 				} | ||||
| 
 | ||||
| 				break; | ||||
|  | @ -274,6 +285,46 @@ BOOL LoadGenericData(void) | |||
| 				ExtraSound_LoadSFX(path.c_str(), ptp_table[i].slot); | ||||
| 				break; | ||||
| #endif | ||||
| 
 | ||||
| //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 | ||||
| //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 | ||||
| //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 | ||||
| //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 | ||||
| //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,,,,,,***/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 | ||||
| //@@@@@@@@@@@@@@@@@@@@@@@@@@*.....,.@@%,,,,,,,,,,,/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 | ||||
| //@@@@@@@@@@@@@@@@@@@@@@@@@..........@.@*,,,,,,,,,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 | ||||
| //@@@@@@@@@@@@@@@@@@@@@@@@.....,,...*@@@@@/,,,,,*****@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 | ||||
| //@@@@@@@@@@@@@@@@@@@@@@@@.....@@@..(@@/@@@,,,*,**,*,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 | ||||
| //@@@@@@@@@@@@@@@@@@@@@@@@.....**/,.,,.,,,,,,*,,,***,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 | ||||
| //@@@@@@@@@@@@@@@@@@@@@@@*......  .                   .,@@@@@@@@@@@@@@@@@@@@@@@@@@
 | ||||
| //@@@@@@@@@@@@@@@@@@@@@.       .%  &...,,,,...      .  @@@@@@@@@@@@@@@@@@@@@@@@@@@
 | ||||
| //@@@@@@@@@@@@@@@@@@@@@@@@ ,,,,*,*.,,**//(//*****//#//@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 | ||||
| //@@@@@@@@@@@@@@@@@@@@@@@@@,,*,*,,.,,,**///*,.,*//((%&(/*%@@@@@@@@@@@@@@@@@@@@@@@@
 | ||||
| //@@@@@@@@@@@@@@@@@@@@@@@#,##,,,,*..,,,,/((*,,*(#((/(***,/**@@@@@@@@@@@@@@@@@@@@@@
 | ||||
| //@@@@@@@@@@@@@@@@@@@@@*/.,,.,*,,,**,,*,*((((#(//(##(*(,/*(,**,#@@@@@@@@@/%&*@@@@@
 | ||||
| //@@@@@@@@@@@@@@@@@@@*/**//.,,*/((*,*,*/(#&%(#/,*(##(//@@,,****,,****@@@*#*(@@@@@@
 | ||||
| //@@@@@@(%@@@@@@@@**/*,*//,@(,,**.,****,../#%####(.//.@@@@@@,,**,/(/((((//(#@@@@@@
 | ||||
| //@@@@@@((#&@@@*//(***#(*&@@@#.,.,,*/****////*, .(//,@@@@@...,,,/(((((%((###*@@@@@
 | ||||
| //@@@@@@*******//**/(#(/(*,@@@*.,,*,.(#&&@@&%%//#/*,@@@@@@,,..,/((/(//(((/#%#@@@@@
 | ||||
| //@@@@@@*/***/*/*/((//((%#(*@@@@/,,**//#(#(((((#(//*@@@@@@,,,,*///(*((((######@@@@
 | ||||
| //@@@@@@/***/*///*///#(*,//@&&&&@#.,**,,,..,*((#/,,/(@&@@@@@@**,**/*((#((#%#%(@@@@
 | ||||
| //@@@@@#***////**((((//(/(/&&&&&/,.. ,***////(/..,,.&@@@@@&@@@@@&/,*//(((#%%%%#(@@
 | ||||
| //@@@@@***///(/****/(////&&@&&&&%#,..    ,,,.....,,&%@@@@@@@&@@@@@@@@*****#&#%@#&@
 | ||||
| //@@@@@*////((((((/**%&&&&&&&&&&@(&&&%%%&%%&&&&&&&&,@@@@&@@@@@@@@@@@@&@***,(@@@@@%
 | ||||
| //@@@@***//(((((//%&&&&&&&&&&&&&&*%%&&&%%&&&&&&&%##&&&@@@@@@@@@@@@@@&@%&#%&,&(@@@@
 | ||||
| //@@@@**,*(//((/&&&&&&&&&&@&&&&&&%*&&&&&&&&&&&&%/%&&@@@@@&@@@@@@@@@&@@@@,,,,,((((/
 | ||||
| //@@((**,**//((@@@@@@&&@@@@&&@@@@@&(&@@&&&&&&&%/#&&@@@@@@@@@@@@@@@@@@@@@**,/*/##(/
 | ||||
| //@@@#.,&#/((((%&@@@@@&&@@@@@@&@@@&&&&@@@&&&&&%%&&&&&@@@@@@@@@@@@@@@@@@@&***///###
 | ||||
| //@@,,,**,%(%%%&&&&@@&&&&@@@@@@@@@@%/&@@@&&&%&(&&&&&&&&&&&@@@@@@@@@@@@@@@*,,////(#
 | ||||
| //@*,,,,/**,/(@&&&&&&&&@@@@@@@@&&@@@&#@@@@&&&%&&&&%&&&&&&&&&@@@@@@@@&@*,****////(#
 | ||||
| //&,**,,**,*((/%&&&&&&&&@@@@@@@@@@@@&%*&&(*&&&&&&&&&&&&&&&&&&&@@@@@/***,*****((///
 | ||||
| 				 | ||||
| 			case SOUND_TYPE_DABABYAUDIO: | ||||
| 			{ | ||||
| 				std::string path = std::string("data/") + ptp_table[i].path; | ||||
| 				LoadSoundObject(path.c_str(), ptp_table[i].slot); | ||||
| 				break; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
|  | @ -39,6 +39,7 @@ void InitMyChar(void) | |||
| 	gMC.life = 3; | ||||
| 	gMC.max_life = 3; | ||||
| 	gMC.unit = 0; | ||||
| 	cion = 0; | ||||
| 
 | ||||
| 	// This is initialized with the values the game uses in vanilla
 | ||||
| 	gMC.physics_normal.max_dash = 0x32C; | ||||
|  | @ -445,7 +446,7 @@ void ActMyChar_Normal(BOOL bKey) | |||
| 	if (bKey) | ||||
| 	{ | ||||
| 		// Look up and down
 | ||||
| 		if (gKey & gKeyUp) | ||||
| 		/*if (gKey & gKeyUp)
 | ||||
| 			gMC.up = TRUE; | ||||
| 		else | ||||
| 			gMC.up = FALSE; | ||||
|  | @ -453,7 +454,7 @@ void ActMyChar_Normal(BOOL bKey) | |||
| 		if (gKey & gKeyDown && !(gMC.flag & 8)) | ||||
| 			gMC.down = TRUE; | ||||
| 		else | ||||
| 			gMC.down = FALSE; | ||||
| 			gMC.down = FALSE;*/ | ||||
| 
 | ||||
| 		if (gKeyTrg & gKeyJump && (gMC.flag & 8 || gMC.flag & 0x10 || gMC.flag & 0x20)) | ||||
| 		{ | ||||
|  |  | |||
|  | @ -800,7 +800,8 @@ void HitMyCharNpChar(void) | |||
| 		if (hit != 0 && gNPC[i].code_char == 1) | ||||
| 		{ | ||||
| 			PlaySoundObject(14, SOUND_MODE_PLAY); | ||||
| 			AddExpMyChar(gNPC[i].exp); | ||||
| 			// AddExpMyChar(gNPC[i].exp);
 | ||||
| 			cion+= 1; | ||||
| 			gNPC[i].cond = 0; | ||||
| 		} | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										196
									
								
								src/MycParam.cpp
									
										
									
									
									
								
							
							
						
						
									
										196
									
								
								src/MycParam.cpp
									
										
									
									
									
								
							|  | @ -37,19 +37,35 @@ ARMS_LEVEL gArmsLevelTable[14] = | |||
| 	{{40, 60, 200}} | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| void SetDestroyMyChar(int x, int y, int w, int num) | ||||
| { | ||||
| 	int i; | ||||
| 	int offset_x; | ||||
| 	int offset_y; | ||||
| 
 | ||||
| 	// Create smoke
 | ||||
| 	w /= 0x200; | ||||
| 	for (i = 0; i < num; ++i) | ||||
| 	{ | ||||
| 		offset_x = Random(-w, w) * 0x200; | ||||
| 		offset_y = Random(-w, w) * 0x200; | ||||
| 		SetNpChar(4, x + offset_x, y + offset_y, 0, 0, 1, NULL, 0x100);//SetNpChar(NPC_SMOKE, x + offset_x, y + offset_y, 0, 0, 0, NULL, 0x100);
 | ||||
| 	} | ||||
| 
 | ||||
| 	// Flash effect
 | ||||
| 	SetCaret(x, y, 12, 0); | ||||
| } | ||||
| void AddExpMyChar(int x) | ||||
| { | ||||
| 	int lv = gArmsData[gSelectedArms].level - 1; | ||||
| 	/*int lv = gArmsData[gSelectedArms].level - 1;
 | ||||
| 	int arms_code = gArmsData[gSelectedArms].code; | ||||
| 
 | ||||
| 	gArmsData[gSelectedArms].exp += x; | ||||
| 
 | ||||
| 	if (lv == 2) | ||||
| 	{ | ||||
| 		if (gArmsData[gSelectedArms].exp >= gArmsLevelTable[arms_code].exp[lv]) | ||||
| 		{ | ||||
| 			gArmsData[gSelectedArms].exp = gArmsLevelTable[arms_code].exp[lv]; | ||||
| 
 | ||||
| 			if (gMC.equip & EQUIP_WHIMSICAL_STAR) | ||||
| 			{ | ||||
| 				if (gMC.star < 3) | ||||
|  | @ -65,7 +81,6 @@ void AddExpMyChar(int x) | |||
| 			{ | ||||
| 				++gArmsData[gSelectedArms].level; | ||||
| 				gArmsData[gSelectedArms].exp = 0; | ||||
| 
 | ||||
| 				if (gArmsData[gSelectedArms].code != 13) | ||||
| 				{ | ||||
| 					PlaySoundObject(27, SOUND_MODE_PLAY); | ||||
|  | @ -73,16 +88,27 @@ void AddExpMyChar(int x) | |||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		if (gArmsData[gSelectedArms].code != 13) | ||||
| 		{ | ||||
| 			gMC.exp_count += x; | ||||
| 			gMC.exp_wait = 30; | ||||
| 		} | ||||
| 		else | ||||
| 		{ | ||||
| 			gMC.exp_wait = 10; | ||||
| 			gArmsData[gSelectedArms].level = 1; | ||||
| 			gArmsData[gSelectedArms].exp = 0; | ||||
| 		} | ||||
| 	}*/ | ||||
| 	cion += x; | ||||
| 	if (x == 1) { | ||||
| 		SetCaret(gMC.x, gMC.y, 21, 0); | ||||
| 	} | ||||
| 
 | ||||
| 	if (gArmsData[gSelectedArms].code != 13) | ||||
| 	{ | ||||
| 		gMC.exp_count += x; | ||||
| 		gMC.exp_wait = 30; | ||||
| 	else if (x == 3) { | ||||
| 		SetCaret(gMC.x, gMC.y, 22, 0); | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		gMC.exp_wait = 10; | ||||
| 	else if (x == 8) { | ||||
| 		SetCaret(gMC.x, gMC.y, 23, 0); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
|  | @ -175,7 +201,7 @@ void DamageMyChar(int damage) | |||
| 	{ | ||||
| 		PlaySoundObject(17, SOUND_MODE_PLAY); | ||||
| 		gMC.cond = 0; | ||||
| 		SetDestroyNpChar(gMC.x, gMC.y, 0x1400, 0x40); | ||||
| 		SetDestroyMyChar(gMC.x, gMC.y, 0x1400, 0x40); | ||||
| 		StartTextScript(40); | ||||
| 	} | ||||
| } | ||||
|  | @ -233,25 +259,30 @@ void AddMaxLifeMyChar(int val) | |||
| 	gMC.lifeBr = gMC.life; | ||||
| } | ||||
| 
 | ||||
| void PutActiveArmsList(void) | ||||
| { | ||||
| 	RECT rect = {0, 0, 0, 16}; | ||||
| 
 | ||||
| 	// Draw icon
 | ||||
| 	rect.left = gArmsData[gSelectedArms].code * 32; | ||||
| 	rect.right = rect.left + 32; | ||||
| 	// Put your X and Y values here
 | ||||
| 
 | ||||
| 	PutBitmap3(&grcGame, PixelToScreenCoord(16), PixelToScreenCoord(16), &rect, SURFACE_ID_ARMS_IMAGE); | ||||
| 
 | ||||
| } | ||||
| void PutArmsEnergy(BOOL flash) | ||||
| { | ||||
| 	static unsigned char add_flash; | ||||
| 
 | ||||
| 	RECT rcPer = {72, 48, 80, 56}; | ||||
| 	RECT rcLv = {80, 80, 96, 88}; | ||||
| 	RECT rcView = {0, 0, WINDOW_WIDTH, WINDOW_HEIGHT}; | ||||
| 	RECT rcNone = {80, 48, 96, 56}; | ||||
| 
 | ||||
| 	if (gArmsEnergyX > 16) | ||||
| 		gArmsEnergyX -= 2; | ||||
| 	if (gArmsEnergyX < 16) | ||||
| 		gArmsEnergyX += 2; | ||||
| 	RECT rcPer = { 72, 48, 80, 56 }; | ||||
| 	RECT rcView = { 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT }; | ||||
| 	RECT rcNone = { 80, 48, 96, 56 }; | ||||
| 
 | ||||
| 	// Draw max ammo
 | ||||
| 	if (gArmsData[gSelectedArms].max_num) | ||||
| 	{ | ||||
| 		PutNumber4(gArmsEnergyX + 32, 16, gArmsData[gSelectedArms].num, FALSE); | ||||
| 		PutNumber4(gArmsEnergyX + 32, 24, gArmsData[gSelectedArms].max_num, FALSE); | ||||
| 		PutNumber4(32, 24, gArmsData[gSelectedArms].num, FALSE); | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
|  | @ -263,15 +294,6 @@ void PutArmsEnergy(BOOL flash) | |||
| 	if (flash == TRUE && (gMC.shock / 2) % 2) | ||||
| 		return; | ||||
| 
 | ||||
| 	PutBitmap3(&rcView, PixelToScreenCoord(gArmsEnergyX + 32), PixelToScreenCoord(24), &rcPer, SURFACE_ID_TEXT_BOX); | ||||
| 	PutBitmap3(&rcView, PixelToScreenCoord(gArmsEnergyX), PixelToScreenCoord(32), &rcLv, SURFACE_ID_TEXT_BOX); | ||||
| 	PutNumber4(gArmsEnergyX - 8, 32, gArmsData[gSelectedArms].level, FALSE); | ||||
| 
 | ||||
| 	RECT rcExpBox = {0, 72, 40, 80}; | ||||
| 	RECT rcExpVal = {0, 80, 0, 88}; | ||||
| 	RECT rcExpMax = {40, 72, 80, 80}; | ||||
| 	RECT rcExpFlash = {40, 80, 80, 88}; | ||||
| 
 | ||||
| 	int lv = gArmsData[gSelectedArms].level - 1; | ||||
| 
 | ||||
| #ifdef FIX_BUGS | ||||
|  | @ -281,97 +303,37 @@ void PutArmsEnergy(BOOL flash) | |||
| 	if (lv < 0) | ||||
| 		lv = 0; | ||||
| #endif | ||||
| 
 | ||||
| 	int arms_code = gArmsData[gSelectedArms].code; | ||||
| 	int exp_now = gArmsData[gSelectedArms].exp; | ||||
| 	int exp_next = gArmsLevelTable[arms_code].exp[lv]; | ||||
| 
 | ||||
| 	PutBitmap3(&rcView, PixelToScreenCoord(gArmsEnergyX + 24), PixelToScreenCoord(32), &rcExpBox, SURFACE_ID_TEXT_BOX); | ||||
| 
 | ||||
| 	if (lv == 2 && gArmsData[gSelectedArms].exp == gArmsLevelTable[arms_code].exp[lv]) | ||||
| 	{ | ||||
| 		PutBitmap3(&rcView, PixelToScreenCoord(gArmsEnergyX + 24), PixelToScreenCoord(32), &rcExpMax, SURFACE_ID_TEXT_BOX); | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		if (exp_next != 0) | ||||
| 			rcExpVal.right += (exp_now * 40) / exp_next; | ||||
| 		else | ||||
| 			rcExpVal.right = 0; | ||||
| 
 | ||||
| 		PutBitmap3(&rcView, PixelToScreenCoord(gArmsEnergyX + 24), PixelToScreenCoord(32), &rcExpVal, SURFACE_ID_TEXT_BOX); | ||||
| 	} | ||||
| 
 | ||||
| 	if (gMC.exp_wait && ((add_flash++ / 2) % 2)) | ||||
| 		PutBitmap3(&rcView, PixelToScreenCoord(gArmsEnergyX + 24), PixelToScreenCoord(32), &rcExpFlash, SURFACE_ID_TEXT_BOX); | ||||
| } | ||||
| 
 | ||||
| void PutActiveArmsList(void) | ||||
| { | ||||
| 	int x; | ||||
| 	int a; | ||||
| 	RECT rect = {0, 0, 0, 16}; | ||||
| 
 | ||||
| 	int arms_num = 0; | ||||
| 	while (gArmsData[arms_num].code != 0) | ||||
| 		++arms_num; | ||||
| 
 | ||||
| 	if (arms_num == 0) | ||||
| 		return; | ||||
| 
 | ||||
| 	for (a = 0; a < arms_num; ++a) | ||||
| 	{ | ||||
| 		// Get X position to draw at
 | ||||
| 		x = ((a - gSelectedArms) * 16) + gArmsEnergyX; | ||||
| 
 | ||||
| 		if (x < 8) | ||||
| 			x += 48 + (arms_num * 16); | ||||
| 		else if (x >= 24) | ||||
| 			x += 48; | ||||
| 
 | ||||
| 		if (x >= 72 + ((arms_num - 1) * 16)) | ||||
| 			x -= 48 + (arms_num * 16); | ||||
| 		if (x < 72 && x >= 24) | ||||
| 			x -= 48; | ||||
| 
 | ||||
| 		// Draw icon
 | ||||
| 		rect.left = gArmsData[a].code * 16; | ||||
| 		rect.right = rect.left + 16; | ||||
| 		PutBitmap3(&grcGame, PixelToScreenCoord(x), PixelToScreenCoord(16), &rect, SURFACE_ID_ARMS_IMAGE); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| void PutMyLife(BOOL flash) | ||||
| { | ||||
| 	RECT rcCase = {0, 40, 232, 48}; | ||||
| 	RECT rcLife = {0, 24, 232, 32}; | ||||
| 	RECT rcBr = {0, 32, 232, 40}; | ||||
| 	static unsigned int add_flash; | ||||
| 
 | ||||
| 	if (flash == TRUE && gMC.shock / 2 % 2) | ||||
| 	RECT rcLife[2] = { | ||||
| 		{0, 151, 7, 158}, | ||||
| 		{0, 144, 7, 151}, | ||||
| 	}; | ||||
| 	if (flash == TRUE && (gMC.shock / 2) % 2 && gMC.life != 1) | ||||
| 		return; | ||||
| 
 | ||||
| 	if (gMC.lifeBr < gMC.life) | ||||
| 		gMC.lifeBr = gMC.life; | ||||
| 
 | ||||
| 	if (gMC.lifeBr > gMC.life) | ||||
| 	if (flash == TRUE && gMC.life == 1 && ((add_flash++ / 2) % 2)) | ||||
| 		return; | ||||
| 	for (int i = 0; i < gMC.max_life - 1; i++) // For every 1 in max life, add 1 to i, and run the following code
 | ||||
| 	{ | ||||
| 		if (++gMC.lifeBr_count > 30) | ||||
| 			--gMC.lifeBr; | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		gMC.lifeBr_count = 0; | ||||
| 		// Put a heart
 | ||||
| 		PutBitmap3( | ||||
| 			&grcGame, // Target
 | ||||
| 			// On the next two lines TT7 forgot PixelToScreenCoord, which is needed for the PutBitmap to work on resolutions other than 1x 
 | ||||
| 			PixelToScreenCoord(16 + (8 * i)), // X position, offset by 8 for every 1 in i
 | ||||
| 			PixelToScreenCoord(225), // Y position,
 | ||||
| 			& rcLife[gMC.life - 1 > i], // Which rect to use, 'gMC.life - 1 > i' checks if  the current heart that is being drawn is full or not, returns 0 if it's not and 1 if it is
 | ||||
| 			SURFACE_ID_TEXT_BOX); // Surface
 | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| 	// Draw bar
 | ||||
| 	rcCase.right = 64; | ||||
| 	rcLife.right = ((gMC.life * 40) / gMC.max_life) - 1; | ||||
| 	rcBr.right = ((gMC.lifeBr * 40) / gMC.max_life) - 1; | ||||
| 
 | ||||
| 	PutBitmap3(&grcGame, PixelToScreenCoord(16), PixelToScreenCoord(40), &rcCase, SURFACE_ID_TEXT_BOX); | ||||
| 	PutBitmap3(&grcGame, PixelToScreenCoord(40), PixelToScreenCoord(40), &rcBr, SURFACE_ID_TEXT_BOX); | ||||
| 	PutBitmap3(&grcGame, PixelToScreenCoord(40), PixelToScreenCoord(40), &rcLife, SURFACE_ID_TEXT_BOX); | ||||
| 	PutNumber4(8, 40, gMC.lifeBr, FALSE); | ||||
| void PutCion() | ||||
| { | ||||
| 	RECT rcCion = {208, 112, 226, 118}; | ||||
| 	PutBitmap3(&grcGame, PixelToScreenCoord(51), PixelToScreenCoord(218), &rcCion, SURFACE_ID_TEXT_BOX); | ||||
| 	PutNumber4(17, 217, cion, FALSE); | ||||
| } | ||||
| 
 | ||||
| void PutMyAir(int x, int y) | ||||
|  |  | |||
|  | @ -26,6 +26,7 @@ void AddMaxLifeMyChar(int val); | |||
| void PutArmsEnergy(BOOL flash); | ||||
| void PutActiveArmsList(void); | ||||
| void PutMyLife(BOOL flash); | ||||
| void PutCion(); | ||||
| void PutMyAir(int x, int y); | ||||
| void PutTimeCounter(int x, int y); | ||||
| BOOL SaveTimeCounter(void); | ||||
|  |  | |||
|  | @ -9,6 +9,7 @@ | |||
| 
 | ||||
| #include "ArmsItem.h" | ||||
| #include "Caret.h" | ||||
| #include "CommonDefines.h" | ||||
| #include "Draw.h" | ||||
| #include "File.h" | ||||
| #include "Flags.h" | ||||
|  | @ -166,13 +167,14 @@ void SetDestroyNpChar(int x, int y, int w, int num) | |||
| 	{ | ||||
| 		offset_x = Random(-w, w) * 0x200; | ||||
| 		offset_y = Random(-w, w) * 0x200; | ||||
| 		SetNpChar(NPC_SMOKE, x + offset_x, y + offset_y, 0, 0, 0, NULL, 0x100); | ||||
| 		SetCaret(x + offset_x, y + offset_y, 18, 0);//SetNpChar(NPC_SMOKE, x + offset_x, y + offset_y, 0, 0, 0, NULL, 0x100);
 | ||||
| 	} | ||||
| 
 | ||||
| 	// Flash effect
 | ||||
| 	SetCaret(x, y, 12, 0); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| void SetDestroyNpCharUp(int x, int y, int w, int num) | ||||
| { | ||||
| 	int i; | ||||
|  | @ -185,7 +187,7 @@ void SetDestroyNpCharUp(int x, int y, int w, int num) | |||
| 	{ | ||||
| 		offset_x = Random(-w, w) * 0x200; | ||||
| 		offset_y = Random(-w, w) * 0x200; | ||||
| 		SetNpChar(4, x + offset_x, y + offset_y, 0, 0, 1, NULL, 0x100); | ||||
| 		SetCaret(x + offset_x, y + offset_y, 18, 0); | ||||
| 	} | ||||
| 
 | ||||
| 	// Flash effect
 | ||||
|  | @ -208,15 +210,15 @@ void SetExpObjects(int x, int y, int exp) | |||
| 
 | ||||
| 		memset(&gNPC[n], 0, sizeof(NPCHAR)); | ||||
| 
 | ||||
| 		if (exp >= 20) | ||||
| 		if (exp >= 8) | ||||
| 		{ | ||||
| 			exp -= 20; | ||||
| 			sub_exp = 20; | ||||
| 			exp -= 8; | ||||
| 			sub_exp = 8; | ||||
| 		} | ||||
| 		else if (exp >= 5) | ||||
| 		else if (exp >= 3) | ||||
| 		{ | ||||
| 			exp -= 5; | ||||
| 			sub_exp = 5; | ||||
| 			exp -= 3; | ||||
| 			sub_exp = 3; | ||||
| 		} | ||||
| 		else if (exp >= 1) | ||||
| 		{ | ||||
|  | @ -618,7 +620,7 @@ void DeleteNpCharCode(int code, BOOL bSmoke) | |||
| 
 | ||||
| 			if (bSmoke) | ||||
| 			{ | ||||
| 				PlaySoundObject(gNPC[n].destroy_voice, SOUND_MODE_PLAY); | ||||
| 				PlaySoundObject(70, SOUND_MODE_PLAY); | ||||
| 
 | ||||
| 				switch (gNPC[n].size) | ||||
| 				{ | ||||
|  | @ -681,3 +683,4 @@ int CountAliveNpChar(void) | |||
| 
 | ||||
| 	return count; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -110,7 +110,7 @@ void ActNpc001(NPCHAR *npc) | |||
| 		// Bounce off floor
 | ||||
| 		if (npc->flag & 8) | ||||
| 		{ | ||||
| 			PlaySoundObject(45, SOUND_MODE_PLAY); | ||||
| 			PlaySoundObject(07, SOUND_MODE_PLAY); | ||||
| 			npc->ym = -0x280; | ||||
| 			npc->xm = 2 * npc->xm / 3; | ||||
| 		} | ||||
|  | @ -118,7 +118,7 @@ void ActNpc001(NPCHAR *npc) | |||
| 		// Play bounce song (and try to clip out of floor if stuck)
 | ||||
| 		if (npc->flag & 0xD) | ||||
| 		{ | ||||
| 			PlaySoundObject(45, SOUND_MODE_PLAY); | ||||
| 			PlaySoundObject(07, SOUND_MODE_PLAY); | ||||
| 			if (++npc->count2 > 2) | ||||
| 				npc->y -= 1 * 0x200; | ||||
| 		} | ||||
|  | @ -183,17 +183,22 @@ void ActNpc001(NPCHAR *npc) | |||
| 	// Size
 | ||||
| 	if (npc->act_no != 0) | ||||
| 	{ | ||||
| 		switch (npc->exp) | ||||
| 		//cout << npc->exp;
 | ||||
| 		switch (npc->exp) //SetCaret(gMC.x, gMC.y, 21, 0);
 | ||||
| 		{ | ||||
| 			case 5: | ||||
| 			case 3: | ||||
| 				npc->rect.top += 16; | ||||
| 				npc->rect.bottom += 16; | ||||
| 				//printf("me when 3 cion drop");
 | ||||
| 				break; | ||||
| 
 | ||||
| 			case 20: | ||||
| 			case 8: | ||||
| 				npc->rect.top += 32; | ||||
| 				npc->rect.bottom += 32; | ||||
| 				//printf("me when 8 cion drops");
 | ||||
| 				break; | ||||
| 			//case 1:
 | ||||
| 				//printf("bruh whate da heall bruh");
 | ||||
| 		} | ||||
| 
 | ||||
| 		npc->act_no = 1; | ||||
|  |  | |||
|  | @ -82,6 +82,7 @@ BOOL SaveProfile(const char *name) | |||
| 	memcpy(profile.permitstage, gPermitStage, sizeof(profile.permitstage)); | ||||
| 	memcpy(profile.permit_mapping, gMapping, sizeof(profile.permit_mapping)); | ||||
| 	memcpy(profile.flags, gFlagNPC, sizeof(profile.flags)); | ||||
| 	profile.cion = cion; | ||||
| 	// Custom
 | ||||
| 	memcpy(profile.extra_code, gProfileCodeExtra, sizeof(profile.extra_code)); | ||||
| 	profile.MIMCurrentNum = gMIMCurrentNum; | ||||
|  | @ -123,6 +124,7 @@ BOOL SaveProfile(const char *name) | |||
| 	fwrite(profile.permit_mapping, 0x80, 1, fp); | ||||
| 	fwrite(FLAG, 4, 1, fp); | ||||
| 	fwrite(profile.flags, 1000, 1, fp); | ||||
| 	File_WriteLE32(profile.cion, fp); | ||||
| 	// Custom
 | ||||
| 	fwrite(gProfileCodeExtra, 0x10, 1, fp); | ||||
| 	File_WriteLE32(profile.MIMCurrentNum, fp); | ||||
|  | @ -211,6 +213,7 @@ BOOL LoadProfile(const char *name) | |||
| 	fread(profile.permit_mapping, 0x80, 1, fp); | ||||
| 	fread(profile.FLAG, 4, 1, fp); | ||||
| 	fread(profile.flags, 1000, 1, fp); | ||||
| 	profile.cion = File_ReadLE32(fp); | ||||
| 	 | ||||
| 	// Custom
 | ||||
| 	fread(profile.extra_code, 0x10, 1, fp); | ||||
|  | @ -268,6 +271,7 @@ BOOL LoadProfile(const char *name) | |||
| 	gMC.star = profile.star; | ||||
| 	gMC.cond = 0x80; | ||||
| 	gMC.air = 1000; | ||||
| 	cion = profile.cion; | ||||
| 	gMC.lifeBr = profile.life; | ||||
| 	gMC.x = profile.x; | ||||
| 	gMC.y = profile.y; | ||||
|  |  | |||
|  | @ -30,7 +30,8 @@ typedef struct PROFILE | |||
| 	signed char permit_mapping[0x80]; | ||||
| 	char FLAG[4]; | ||||
| 	unsigned char flags[1000]; | ||||
| 
 | ||||
| 	// CION
 | ||||
| 	unsigned int cion; | ||||
| 	// Custom
 | ||||
| 	char extra_code[0x10]; | ||||
| 	// <MIM
 | ||||
|  |  | |||
|  | @ -53,6 +53,7 @@ const RECT gRect_line = {0, 0, 216, 16}; | |||
| static unsigned long nod_color; | ||||
| #endif | ||||
| 
 | ||||
| unsigned int cion = 0; | ||||
| unsigned int gMIMCurrentNum = 0; | ||||
| 
 | ||||
| // Initialize and end tsc
 | ||||
|  | @ -705,6 +706,38 @@ int TextScriptProc(void) | |||
| 						y = GetTextScriptNo(gTS.p_read + 9); | ||||
| 						AddPermitStage(x, y); | ||||
| 						gTS.p_read += 13; | ||||
| 					} | ||||
| 										//CION commands
 | ||||
| 					//Add X amount of cion
 | ||||
| 					else if (IS_COMMAND('C','I','+')) | ||||
| 					{ | ||||
| 						x = GetTextScriptNo(gTS.p_read + 4); | ||||
| 						cion+= x; | ||||
| 						gTS.p_read += 8; | ||||
| 					} | ||||
| 					//Remove X amount of cion
 | ||||
| 					else if (IS_COMMAND('C','I','-')) | ||||
| 					{ | ||||
| 						x = GetTextScriptNo(gTS.p_read + 4); | ||||
| 						cion-= x; | ||||
| 						gTS.p_read += 8; | ||||
| 					} | ||||
| 					//Set cion to X (useful for removing all cions!)
 | ||||
| 					else if (IS_COMMAND('C','I','S')) | ||||
| 					{ | ||||
| 						x = GetTextScriptNo(gTS.p_read + 4); | ||||
| 						cion= x; | ||||
| 						gTS.p_read += 8; | ||||
| 					} | ||||
| 					//If cion is Greater than or Equal to X, go to event Y.
 | ||||
| 					else if (IS_COMMAND('C','I','J')) | ||||
| 					{ | ||||
| 						x = GetTextScriptNo(gTS.p_read + 4); | ||||
| 						y = GetTextScriptNo(gTS.p_read + 9); | ||||
| 						if (cion >= x) | ||||
| 							JumpTextScript(y); | ||||
| 						else | ||||
| 						gTS.p_read += 13; | ||||
| 					} | ||||
| 					else if (IS_COMMAND('M','P','+')) | ||||
| 					{ | ||||
|  |  | |||
|  | @ -55,6 +55,8 @@ typedef struct TEXT_SCRIPT | |||
| 	unsigned char wait_beam; | ||||
| } TEXT_SCRIPT; | ||||
| 
 | ||||
| unsigned extern int cion; | ||||
| 
 | ||||
| extern TEXT_SCRIPT gTS; | ||||
| 
 | ||||
| extern const RECT gRect_line; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue