fix STKM being unable to pick up most energy particles, or LOLZ/LOVE
This commit is contained in:
parent
edf180b94e
commit
139bdd7f4d
@ -892,14 +892,14 @@ void GameController::Update()
|
|||||||
if (activeTool->GetIdentifier().find("DEFAULT_PT_") != activeTool->GetIdentifier().npos)
|
if (activeTool->GetIdentifier().find("DEFAULT_PT_") != activeTool->GetIdentifier().npos)
|
||||||
{
|
{
|
||||||
int sr = activeTool->GetToolID();
|
int sr = activeTool->GetToolID();
|
||||||
if ((sr>0 && sr<PT_NUM && sim->elements[sr].Enabled && sim->elements[sr].Falldown>0) || sr==SPC_AIR || sr == PT_NEUT || sr == PT_PHOT || sr == PT_LIGH)
|
if (sr && sim->IsValidElement(sr))
|
||||||
rightSelected = sr;
|
rightSelected = sr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!sim->player.spwn)
|
if (!sim->player.spwn)
|
||||||
sim->player.elem = rightSelected;
|
Element_STKM::STKM_set_element(sim, &sim->player, rightSelected);
|
||||||
if (!sim->player2.spwn)
|
if (!sim->player2.spwn)
|
||||||
sim->player2.elem = rightSelected;
|
Element_STKM::STKM_set_element(sim, &sim->player2, rightSelected);
|
||||||
}
|
}
|
||||||
if(renderOptions && renderOptions->HasExited)
|
if(renderOptions && renderOptions->HasExited)
|
||||||
{
|
{
|
||||||
|
@ -65,8 +65,8 @@ int Element_STKM::graphics(GRAPHICS_FUNC_ARGS)
|
|||||||
|
|
||||||
#define INBOND(x, y) ((x)>=0 && (y)>=0 && (x)<XRES && (y)<YRES)
|
#define INBOND(x, y) ((x)>=0 && (y)>=0 && (x)<XRES && (y)<YRES)
|
||||||
|
|
||||||
//#TPT-Directive ElementHeader Element_STKM static int run_stickman(playerst* playerp, UPDATE_FUNC_ARGS)
|
//#TPT-Directive ElementHeader Element_STKM static int run_stickman(playerst *playerp, UPDATE_FUNC_ARGS)
|
||||||
int Element_STKM::run_stickman(playerst* playerp, UPDATE_FUNC_ARGS) {
|
int Element_STKM::run_stickman(playerst *playerp, UPDATE_FUNC_ARGS) {
|
||||||
int r, rx, ry;
|
int r, rx, ry;
|
||||||
int t = parts[i].type;
|
int t = parts[i].type;
|
||||||
float pp, d;
|
float pp, d;
|
||||||
@ -78,8 +78,7 @@ int Element_STKM::run_stickman(playerst* playerp, UPDATE_FUNC_ARGS) {
|
|||||||
float rocketBootsHeadEffectV = 0.3f;// stronger acceleration vertically, to counteract gravity
|
float rocketBootsHeadEffectV = 0.3f;// stronger acceleration vertically, to counteract gravity
|
||||||
float rocketBootsFeetEffectV = 0.45f;
|
float rocketBootsFeetEffectV = 0.45f;
|
||||||
|
|
||||||
if ((parts[i].ctype>0 && parts[i].ctype<PT_NUM && sim->elements[parts[i].ctype].Enabled && sim->elements[parts[i].ctype].Falldown>0) || parts[i].ctype==SPC_AIR || parts[i].ctype == PT_NEUT || parts[i].ctype == PT_PHOT || parts[i].ctype == PT_LIGH)
|
STKM_set_element(sim, playerp, parts[i].ctype);
|
||||||
playerp->elem = parts[i].ctype;
|
|
||||||
playerp->frames++;
|
playerp->frames++;
|
||||||
|
|
||||||
//Temperature handling
|
//Temperature handling
|
||||||
@ -365,16 +364,7 @@ int Element_STKM::run_stickman(playerst* playerp, UPDATE_FUNC_ARGS) {
|
|||||||
if (!r && !sim->bmap[(y+ry)/CELL][(x+rx)/CELL])
|
if (!r && !sim->bmap[(y+ry)/CELL][(x+rx)/CELL])
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (sim->elements[r&0xFF].Falldown != 0
|
STKM_set_element(sim, playerp, r&0xFF);
|
||||||
|| sim->elements[r&0xFF].Properties&TYPE_GAS
|
|
||||||
|| sim->elements[r&0xFF].Properties&TYPE_LIQUID
|
|
||||||
|| (r&0xFF) == PT_NEUT || (r&0xFF) == PT_PHOT)
|
|
||||||
{
|
|
||||||
if (!playerp->rocketBoots || (r&0xFF)!=PT_PLSM)
|
|
||||||
playerp->elem = r&0xFF; //Current element
|
|
||||||
}
|
|
||||||
if ((r&0xFF)==PT_TESC || (r&0xFF)==PT_LIGH)
|
|
||||||
playerp->elem = PT_LIGH;
|
|
||||||
if ((r&0xFF) == PT_PLNT && parts[i].life<100) //Plant gives him 5 HP
|
if ((r&0xFF) == PT_PLNT && parts[i].life<100) //Plant gives him 5 HP
|
||||||
{
|
{
|
||||||
if (parts[i].life<=95)
|
if (parts[i].life<=95)
|
||||||
@ -575,8 +565,8 @@ int Element_STKM::run_stickman(playerst* playerp, UPDATE_FUNC_ARGS) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//#TPT-Directive ElementHeader Element_STKM static void STKM_interact(Simulation * sim, playerst* playerp, int i, int x, int y)
|
//#TPT-Directive ElementHeader Element_STKM static void STKM_interact(Simulation *sim, playerst *playerp, int i, int x, int y)
|
||||||
void Element_STKM::STKM_interact(Simulation * sim, playerst* playerp, int i, int x, int y)
|
void Element_STKM::STKM_interact(Simulation *sim, playerst *playerp, int i, int x, int y)
|
||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
if (x<0 || y<0 || x>=XRES || y>=YRES || !sim->parts[i].type)
|
if (x<0 || y<0 || x>=XRES || y>=YRES || !sim->parts[i].type)
|
||||||
@ -642,8 +632,8 @@ void Element_STKM::STKM_interact(Simulation * sim, playerst* playerp, int i, int
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//#TPT-Directive ElementHeader Element_STKM static void STKM_init_legs(Simulation * sim, playerst* playerp, int i)
|
//#TPT-Directive ElementHeader Element_STKM static void STKM_init_legs(Simulation * sim, playerst *playerp, int i)
|
||||||
void Element_STKM::STKM_init_legs(Simulation * sim, playerst* playerp, int i)
|
void Element_STKM::STKM_init_legs(Simulation * sim, playerst *playerp, int i)
|
||||||
{
|
{
|
||||||
int x, y;
|
int x, y;
|
||||||
|
|
||||||
@ -677,5 +667,21 @@ void Element_STKM::STKM_init_legs(Simulation * sim, playerst* playerp, int i)
|
|||||||
playerp->frames = 0;
|
playerp->frames = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//#TPT-Directive ElementHeader Element_STKM static void STKM_set_element(Simulation *sim, playerst *playerp, int element)
|
||||||
|
void Element_STKM::STKM_set_element(Simulation *sim, playerst *playerp, int element)
|
||||||
|
{
|
||||||
|
if (sim->elements[element].Falldown != 0
|
||||||
|
|| sim->elements[element].Properties&TYPE_GAS
|
||||||
|
|| sim->elements[element].Properties&TYPE_LIQUID
|
||||||
|
|| sim->elements[element].Properties&TYPE_ENERGY
|
||||||
|
|| element == PT_LOLZ || element == PT_LOVE || element == SPC_AIR)
|
||||||
|
{
|
||||||
|
if (!playerp->rocketBoots || element != PT_PLSM)
|
||||||
|
playerp->elem = element;
|
||||||
|
}
|
||||||
|
if (element == PT_TESC || element == PT_LIGH)
|
||||||
|
playerp->elem = PT_LIGH;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Element_STKM::~Element_STKM() {}
|
Element_STKM::~Element_STKM() {}
|
||||||
|
Loading…
Reference in New Issue
Block a user