diff options
| author | cracker64 <cracker642@gmail.com> | 2013-02-27 05:11:23 (GMT) |
|---|---|---|
| committer | cracker64 <cracker642@gmail.com> | 2013-02-27 05:11:23 (GMT) |
| commit | 27e3e1251837f5d64e835068d5f5bd5b67b95921 (patch) | |
| tree | af6383f7df96485633c91ebcfbe6318ee927403f /src/simulation/elements/FIRE.cpp | |
| parent | a62467c74e9391dd2a9173cfa167d32eceed506b (diff) | |
| download | powder-27e3e1251837f5d64e835068d5f5bd5b67b95921.zip powder-27e3e1251837f5d64e835068d5f5bd5b67b95921.tar.gz | |
Small optimizations number 2.
Diffstat (limited to 'src/simulation/elements/FIRE.cpp')
| -rw-r--r-- | src/simulation/elements/FIRE.cpp | 36 |
1 files changed, 14 insertions, 22 deletions
diff --git a/src/simulation/elements/FIRE.cpp b/src/simulation/elements/FIRE.cpp index f9313fa..9a9334f 100644 --- a/src/simulation/elements/FIRE.cpp +++ b/src/simulation/elements/FIRE.cpp @@ -50,32 +50,28 @@ Element_FIRE::Element_FIRE() int Element_FIRE::update(UPDATE_FUNC_ARGS) { int r, rx, ry, rt, t = parts[i].type; - if (t==PT_PLSM&&parts[i].ctype == PT_NBLE&&parts[i].life <=1) + if (t==PT_PLSM && parts[i].ctype == PT_NBLE && parts[i].life <=1) { - t = PT_NBLE; - sim->part_change_type(i,x,y,t); + sim->part_change_type(i,x,y,PT_NBLE); parts[i].life = 0; } - if(t==PT_FIRE && parts[i].life <=1) + if (t==PT_FIRE && parts[i].life <=1) { if ((parts[i].tmp&0x3) == 3){ - t = PT_DSTW; - sim->part_change_type(i,x,y,t); + sim->part_change_type(i,x,y,PT_DSTW); parts[i].life = 0; parts[i].ctype = PT_FIRE; } else if (parts[i].temp<625) { - t = PT_SMKE; - sim->part_change_type(i,x,y,t); + sim->part_change_type(i,x,y,PT_SMKE); parts[i].life = rand()%20+250; } } - if(t==PT_PLSM && parts[i].life <=1) + if (t==PT_PLSM && parts[i].life <=1) { if ((parts[i].tmp&0x3) == 3){ - t = PT_DSTW; - sim->part_change_type(i,x,y,t); + sim->part_change_type(i,x,y,PT_DSTW); parts[i].life = 0; parts[i].ctype = PT_FIRE; } @@ -89,7 +85,7 @@ int Element_FIRE::update(UPDATE_FUNC_ARGS) continue; if (sim->bmap[(y+ry)/CELL][(x+rx)/CELL] && sim->bmap[(y+ry)/CELL][(x+rx)/CELL]!=WL_STREAM) continue; - rt = parts[r>>8].type; + rt = r&0xFF; if ((surround_space || sim->elements[rt].Explosive) && (t!=PT_SPRK || (rt!=PT_RBDM && rt!=PT_LRBD && rt!=PT_INSL)) && (t!=PT_PHOT || rt!=PT_INSL) && @@ -123,12 +119,11 @@ int Element_FIRE::updateLegacy(UPDATE_FUNC_ARGS) { rt = r&0xFF; lpv = (int)sim->pv[(y+ry)/CELL][(x+rx)/CELL]; if (lpv < 1) lpv = 1; - if (t!=PT_SPRK && sim->elements[rt].Meltable && ((rt!=PT_RBDM && rt!=PT_LRBD) || t!=PT_SPRK) && ((t!=PT_FIRE&&t!=PT_PLSM) || (rt!=PT_METL && rt!=PT_IRON && rt!=PT_ETRD && rt!=PT_PSCN && rt!=PT_NSCN && rt!=PT_NTCT && rt!=PT_PTCT && rt!=PT_BMTL && rt!=PT_BRMT && rt!=PT_SALT && rt!=PT_INWR)) && - sim->elements[rt].Meltable*lpv>(rand()%1000)) + if (t!=PT_SPRK && sim->elements[rt].Meltable && ((rt!=PT_RBDM && rt!=PT_LRBD) || t!=PT_SPRK) && ((t!=PT_FIRE&&t!=PT_PLSM) || (rt!=PT_METL && rt!=PT_IRON && rt!=PT_ETRD && rt!=PT_PSCN && rt!=PT_NSCN && rt!=PT_NTCT && rt!=PT_PTCT && rt!=PT_BMTL && rt!=PT_BRMT && rt!=PT_SALT && rt!=PT_INWR)) &&sim->elements[rt].Meltable*lpv>(rand()%1000)) { if (t!=PT_LAVA || parts[i].life>0) { - parts[r>>8].ctype = (rt==PT_BRMT)?PT_BMTL:parts[r>>8].type; + parts[r>>8].ctype = (rt==PT_BRMT)?PT_BMTL:(r&0xFF); parts[r>>8].ctype = (parts[r>>8].ctype==PT_SAND)?PT_GLAS:parts[r>>8].ctype; sim->part_change_type(r>>8,x+rx,y+ry,PT_LAVA); parts[r>>8].life = rand()%120+240; @@ -136,9 +131,8 @@ int Element_FIRE::updateLegacy(UPDATE_FUNC_ARGS) { else { parts[i].life = 0; - t = parts[i].type = (parts[i].ctype)?parts[i].ctype:PT_STNE; parts[i].ctype = PT_NONE;//rt; - sim->part_change_type(i,x,y,t); + sim->part_change_type(i,x,y,(parts[i].ctype)?parts[i].ctype:PT_STNE); return 1; } } @@ -153,8 +147,7 @@ int Element_FIRE::updateLegacy(UPDATE_FUNC_ARGS) { if (t==PT_LAVA) { parts[i].life = 0; - t = parts[i].type = PT_STNE; - sim->part_change_type(i,x,y,t); + sim->part_change_type(i,x,y,PT_STNE); } } if (t!=PT_SPRK && (rt==PT_WATR || rt==PT_DSTW || rt==PT_SLTW)) @@ -168,9 +161,8 @@ int Element_FIRE::updateLegacy(UPDATE_FUNC_ARGS) { if (t==PT_LAVA) { parts[i].life = 0; - t = parts[i].type = (parts[i].ctype)?parts[i].ctype:PT_STNE; parts[i].ctype = PT_NONE; - sim->part_change_type(i,x,y,t); + sim->part_change_type(i,x,y,(parts[i].ctype)?parts[i].ctype:PT_STNE); } } } @@ -198,4 +190,4 @@ int Element_FIRE::graphics(GRAPHICS_FUNC_ARGS) return 0; } -Element_FIRE::~Element_FIRE() {}
\ No newline at end of file +Element_FIRE::~Element_FIRE() {} |
