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