summaryrefslogtreecommitdiff
path: root/src/simulation/elements/FIGH.cpp
diff options
context:
space:
mode:
authorcracker64 <cracker642@gmail.com>2013-02-27 05:11:23 (GMT)
committer cracker64 <cracker642@gmail.com>2013-02-27 05:11:23 (GMT)
commit27e3e1251837f5d64e835068d5f5bd5b67b95921 (patch)
treeaf6383f7df96485633c91ebcfbe6318ee927403f /src/simulation/elements/FIGH.cpp
parenta62467c74e9391dd2a9173cfa167d32eceed506b (diff)
downloadpowder-27e3e1251837f5d64e835068d5f5bd5b67b95921.zip
powder-27e3e1251837f5d64e835068d5f5bd5b67b95921.tar.gz
Small optimizations number 2.
Diffstat (limited to 'src/simulation/elements/FIGH.cpp')
-rw-r--r--src/simulation/elements/FIGH.cpp105
1 files changed, 47 insertions, 58 deletions
diff --git a/src/simulation/elements/FIGH.cpp b/src/simulation/elements/FIGH.cpp
index 66be5bd..e1072f2 100644
--- a/src/simulation/elements/FIGH.cpp
+++ b/src/simulation/elements/FIGH.cpp
@@ -48,7 +48,6 @@ Element_FIGH::Element_FIGH()
//#TPT-Directive ElementHeader Element_FIGH static int update(UPDATE_FUNC_ARGS)
int Element_FIGH::update(UPDATE_FUNC_ARGS)
-
{
playerst* figh = &sim->fighters[(unsigned char)parts[i].tmp];
@@ -57,78 +56,68 @@ int Element_FIGH::update(UPDATE_FUNC_ARGS)
parts[i].tmp2 = 0; //0 - stay in place, 1 - seek a stick man
//Set target cords
- if (sim->player.spwn && sim->player2.spwn)
- {
- if ((pow((float)sim->player.legs[2]-x, 2) + pow((float)sim->player.legs[3]-y, 2))<=
- (pow((float)sim->player2.legs[2]-x, 2) + pow((float)sim->player2.legs[3]-y, 2)))
- {
- tarx = (unsigned int)sim->player.legs[2];
- tary = (unsigned int)sim->player.legs[3];
- }
- else
- {
- tarx = (unsigned int)sim->player2.legs[2];
- tary = (unsigned int)sim->player2.legs[3];
- }
- parts[i].tmp2 = 1;
- }
- else
+ if (sim->player2.spwn)
{
- if (sim->player.spwn)
+ if (sim->player.spwn && (pow((float)sim->player.legs[2]-x, 2) + pow((float)sim->player.legs[3]-y, 2))<=
+ (pow((float)sim->player2.legs[2]-x, 2) + pow((float)sim->player2.legs[3]-y, 2)))
{
tarx = (unsigned int)sim->player.legs[2];
tary = (unsigned int)sim->player.legs[3];
- parts[i].tmp2 = 1;
}
- if (sim->player2.spwn)
+ else
{
tarx = (unsigned int)sim->player2.legs[2];
tary = (unsigned int)sim->player2.legs[3];
- parts[i].tmp2 = 1;
}
+ parts[i].tmp2 = 1;
+ }
+ else if (sim->player.spwn)
+ {
+ tarx = (unsigned int)sim->player.legs[2];
+ tary = (unsigned int)sim->player.legs[3];
+ parts[i].tmp2 = 1;
}
switch (parts[i].tmp2)
{
- case 1:
- if ((pow(float(tarx-x), 2) + pow(float(tary-y), 2))<600)
- {
- if (figh->elem == PT_LIGH || figh->elem == PT_NEUT
- || sim->elements[figh->elem].Properties&(PROP_DEADLY|PROP_RADIOACTIVE)
- || sim->elements[figh->elem].Temperature>=323 || sim->elements[figh->elem].Temperature<=243)
- figh->comm = (int)figh->comm | 0x08;
- }
+ case 1:
+ if ((pow(float(tarx-x), 2) + pow(float(tary-y), 2))<600)
+ {
+ if (figh->elem == PT_LIGH || figh->elem == PT_NEUT
+ || sim->elements[figh->elem].Properties&(PROP_DEADLY|PROP_RADIOACTIVE)
+ || sim->elements[figh->elem].Temperature>=323 || sim->elements[figh->elem].Temperature<=243)
+ figh->comm = (int)figh->comm | 0x08;
+ }
+ else if (tarx<x)
+ {
+ if(!(sim->eval_move(PT_FIGH, figh->legs[4]-10, figh->legs[5]+6, NULL)
+ && sim->eval_move(PT_FIGH, figh->legs[4]-10, figh->legs[5]+3, NULL)))
+ figh->comm = 0x01;
else
- if (tarx<x)
- {
- if(!(sim->eval_move(PT_FIGH, figh->legs[4]-10, figh->legs[5]+6, NULL)
- && sim->eval_move(PT_FIGH, figh->legs[4]-10, figh->legs[5]+3, NULL)))
- figh->comm = 0x01;
- else
- figh->comm = 0x02;
+ figh->comm = 0x02;
- if (!sim->eval_move(PT_FIGH, figh->legs[4]-4, figh->legs[5]-1, NULL)
- || !sim->eval_move(PT_FIGH, figh->legs[12]-4, figh->legs[13]-1, NULL)
- || sim->eval_move(PT_FIGH, 2*figh->legs[4]-figh->legs[6], figh->legs[5]+5, NULL))
- figh->comm = (int)figh->comm | 0x04;
- }
- else
- {
- if (!(sim->eval_move(PT_FIGH, figh->legs[12]+10, figh->legs[13]+6, NULL)
- && sim->eval_move(PT_FIGH, figh->legs[12]+10, figh->legs[13]+3, NULL)))
- figh->comm = 0x02;
- else
- figh->comm = 0x01;
+ if (!sim->eval_move(PT_FIGH, figh->legs[4]-4, figh->legs[5]-1, NULL)
+ || !sim->eval_move(PT_FIGH, figh->legs[12]-4, figh->legs[13]-1, NULL)
+ || sim->eval_move(PT_FIGH, 2*figh->legs[4]-figh->legs[6], figh->legs[5]+5, NULL))
+ figh->comm = (int)figh->comm | 0x04;
+ }
+ else
+ {
+ if (!(sim->eval_move(PT_FIGH, figh->legs[12]+10, figh->legs[13]+6, NULL)
+ && sim->eval_move(PT_FIGH, figh->legs[12]+10, figh->legs[13]+3, NULL)))
+ figh->comm = 0x02;
+ else
+ figh->comm = 0x01;
- if (!sim->eval_move(PT_FIGH, figh->legs[4]+4, figh->legs[5]-1, NULL)
- || !sim->eval_move(PT_FIGH, figh->legs[4]+4, figh->legs[5]-1, NULL)
- || sim->eval_move(PT_FIGH, 2*figh->legs[12]-figh->legs[14], figh->legs[13]+5, NULL))
- figh->comm = (int)figh->comm | 0x04;
- }
- break;
- default:
- figh->comm = 0;
- break;
+ if (!sim->eval_move(PT_FIGH, figh->legs[4]+4, figh->legs[5]-1, NULL)
+ || !sim->eval_move(PT_FIGH, figh->legs[4]+4, figh->legs[5]-1, NULL)
+ || sim->eval_move(PT_FIGH, 2*figh->legs[12]-figh->legs[14], figh->legs[13]+5, NULL))
+ figh->comm = (int)figh->comm | 0x04;
+ }
+ break;
+ default:
+ figh->comm = 0;
+ break;
}
figh->pcomm = figh->comm;
@@ -137,4 +126,4 @@ int Element_FIGH::update(UPDATE_FUNC_ARGS)
return 0;
}
-Element_FIGH::~Element_FIGH() {} \ No newline at end of file
+Element_FIGH::~Element_FIGH() {}