Misc small fixes and tidyup

This commit is contained in:
jacksonmj 2011-01-15 18:37:27 +00:00
parent de58e9a2e7
commit c5670d39c1
6 changed files with 32 additions and 42 deletions

View File

@ -38,8 +38,6 @@ int update_PLNT(UPDATE_FUNC_ARGS) {
parts[np].temp = parts[i].temp;
}
}
//if(t==PT_SNOW && (r&0xFF)==PT_WATR && 15>(rand()%1000))
//t = parts[i].type = PT_WATR;
}
if (parts[i].life==2)
{

View File

@ -5,7 +5,7 @@ int update_SPRK(UPDATE_FUNC_ARGS) {
int r, rx, ry, rt, conduct_sprk, nearp, pavg, ct = parts[i].ctype;
if (parts[i].life<=0)
{
if (ct!=PT_METL&&ct!=PT_PTCT&&ct!=PT_NTCT&&ct!=PT_IRON&&ct!=PT_BMTL&&ct!=PT_BRMT&&ct!=PT_LRBD&&ct!=PT_RBDM&&ct!=PT_BTRY&&ct!=PT_NBLE&&ct!=PT_QRTZ)
if (ct==PT_WATR||ct==PT_SLTW||ct==PT_PSCN||ct==PT_NSCN||ct==PT_ETRD)
parts[i].temp = R_TEMP + 273.15f;
if (!ct)
ct = PT_METL;
@ -33,7 +33,7 @@ int update_SPRK(UPDATE_FUNC_ARGS) {
part_change_type(i,x,y,ct);
ct = parts[i].ctype = PT_NONE;
parts[i].life = 20;
part_change_type(i,(int)(parts[nearp].x+0.5f),(int)(parts[nearp].y+0.5f),PT_SPRK);
part_change_type(nearp,(int)(parts[nearp].x+0.5f),(int)(parts[nearp].y+0.5f),PT_SPRK);
parts[nearp].life = 9;
parts[nearp].ctype = PT_ETRD;
}
@ -89,7 +89,7 @@ int update_SPRK(UPDATE_FUNC_ARGS) {
else if ((ct==PT_PSCN||ct==PT_NSCN) && (rt==PT_PUMP||rt==PT_HSWC||(rt==PT_LCRY&&abs(rx)<2&&abs(ry)<2)))
{
if (ct==PT_PSCN) parts[r>>8].life = 10;
else if (ct==PT_NSCN) parts[r>>8].life = 9;
else if (ct==PT_NSCN && parts[r>>8].life>=10) parts[r>>8].life = 9;
}

View File

@ -13,7 +13,7 @@ int update_SWCH(UPDATE_FUNC_ARGS) {
rt = r&0xFF;
if (rt==PT_SWCH)
{
if (parts[i].life==10&&parts[r>>8].life<10&&parts[r>>8].life>0)
if (parts[i].life>=10&&parts[r>>8].life<10&&parts[r>>8].life>0)
parts[i].life = 9;
else if (parts[i].life==0&&parts[r>>8].life==10)
parts[i].life = 10;

View File

@ -24,8 +24,6 @@ int update_THRM(UPDATE_FUNC_ARGS) {
parts[i].tmp = 20;
}
}
//if(t==PT_SNOW && (r&0xFF)==PT_WATR && 15>(rand()%1000))
//t = parts[i].type = PT_WATR;
}
return 0;
}

View File

@ -23,7 +23,6 @@ int update_WIFI(UPDATE_FUNC_ARGS) {
{
if ((r&0xFF)==PT_SPRK && parts[r>>8].ctype!=PT_NSCN && parts[r>>8].life>=3)
{
//parts[r>>8].type = parts[r>>8].ctype;
wireless[parts[i].tmp][0] = 1;
wireless[parts[i].tmp][1] = 1;
ISWIRE = 1;

View File

@ -38,7 +38,7 @@ static int pn_junction_sprk(int x, int y, int pt)
return 0;
parts[r].ctype = pt;
parts[r].type = PT_SPRK;
part_change_type(r,x,y,PT_SPRK);
parts[r].life = 4;
return 1;
}
@ -181,7 +181,7 @@ int try_move(int i, int x, int y, int nx, int ny)
create_cherenkov_photon(i);
}
if (parts[i].type == PT_PHOT && (r&0xFF)==PT_INVIS) {
parts[i].type = PT_NEUT;
part_change_type(i,x,y,PT_NEUT);
parts[i].ctype = 0;
}
if ((parts[i].type==PT_BIZR||parts[i].type==PT_BIZRG) && (r&0xFF)==PT_FILT)
@ -436,8 +436,12 @@ void kill_part(int i)
{
ISSPAWN2 = 0;
}
if (x>=0 && y>=0 && x<XRES && y<YRES && (pmap[y][x]>>8)==i)
pmap[y][x] = 0;
if (x>=0 && y>=0 && x<XRES && y<YRES) {
if ((pmap[y][x]>>8)==i)
pmap[y][x] = 0;
else if ((photons[y][x]>>8)==i)
photons[y][x] = 0;
}
}
parts[i].type = PT_NONE;
@ -494,6 +498,8 @@ inline int create_n_parts(int n, int x, int y, float vx, float vy, int t)
parts[i].ctype = 0;
parts[i].temp += (n*17);
parts[i].tmp = 0;
if (t!=PT_STKM&&t!=PT_STKM2 && t!=PT_PHOT && !pmap[y][x])// && t!=PT_NEUT)
pmap[y][x] = t|(i<<8);
pv[y/CELL][x/CELL] += 6.0f * CFDS;
}
@ -571,22 +577,8 @@ inline int create_part(int p, int x, int y, int t)
if (t==PT_SPRK)
{
if ((pmap[y][x]&0xFF)!=PT_METL &&
(pmap[y][x]&0xFF)!=PT_PSCN &&
(pmap[y][x]&0xFF)!=PT_NSCN &&
(pmap[y][x]&0xFF)!=PT_NTCT &&
(pmap[y][x]&0xFF)!=PT_PTCT &&
(pmap[y][x]&0xFF)!=PT_WATR &&
(pmap[y][x]&0xFF)!=PT_SLTW &&
(pmap[y][x]&0xFF)!=PT_BMTL &&
(pmap[y][x]&0xFF)!=PT_RBDM &&
(pmap[y][x]&0xFF)!=PT_LRBD &&
(pmap[y][x]&0xFF)!=PT_ETRD &&
(pmap[y][x]&0xFF)!=PT_BRMT &&
(pmap[y][x]&0xFF)!=PT_NBLE &&
(pmap[y][x]&0xFF)!=PT_IRON &&
(pmap[y][x]&0xFF)!=PT_INST &&
(pmap[y][x]&0xFF)!=PT_INWR)
if (!((pmap[y][x]&0xFF)==PT_INST||(ptypes[pmap[y][x]&0xFF].properties&PROP_CONDUCTS))
|| (pmap[y][x]&0xFF)==PT_QRTZ)
return -1;
if (parts[pmap[y][x]>>8].life!=0)
return -1;
@ -895,6 +887,7 @@ static void create_gain_photon(int pp)
parts[i].vy = parts[pp].vy;
parts[i].temp = parts[pmap[ny][nx] >> 8].temp;
parts[i].tmp = 0;
photons[ny][nx] = PT_PHOT|(i<<8);
temp_bin = (int)((parts[i].temp-273.0f)*0.25f);
if (temp_bin < 0) temp_bin = 0;
@ -930,6 +923,7 @@ static void create_cherenkov_photon(int pp)
parts[i].y = parts[pp].y;
parts[i].temp = parts[pmap[ny][nx] >> 8].temp;
parts[i].tmp = 0;
photons[ny][nx] = PT_PHOT|(i<<8);
if (lr) {
parts[i].vx = parts[pp].vx - 2.5f*parts[pp].vy;
@ -966,15 +960,14 @@ inline void delete_part(int x, int y)
if ((parts[i>>8].type==SLALT)||SLALT==0)
{
kill_part(i>>8);
pmap[y][x] = 0;
}
else if (ptypes[parts[i>>8].type].menusection==SEC)
{
kill_part(i>>8);
pmap[y][x] = 0;
}
else
return;
}
#if defined(WIN32) && !defined(__GNUC__)
@ -1133,6 +1126,8 @@ void update_particles_i(pixel *vid, int start, int inc)
{
int i, j, x, y, t, nx, ny, r, surround_space, s, lt, rt, nt, nnx, nny, q, golnum, goldelete, z;
float mv, dx, dy, ix, iy, lx, ly, nrx, nry, dp;
int fin_x, fin_y, clear_x, clear_y;
float fin_xf, fin_yf, clear_xf, clear_yf;
float nn, ct1, ct2;
float pt = R_TEMP;
float c_heat = 0.0f;
@ -1203,7 +1198,7 @@ void update_particles_i(pixel *vid, int start, int inc)
continue;
}
else if ((ny<9||nx<9||ny>YRES-7||nx>XRES-10)&&parts[r>>8].type==PT_LOVE)
parts[r>>8].type = PT_NONE;
kill_part(r>>8);
else if (parts[r>>8].type==PT_LOVE)
{
love[nx/9][ny/9] = 1;
@ -1232,8 +1227,7 @@ void update_particles_i(pixel *vid, int start, int inc)
else if (!rt)
continue;
else if (parts[rt>>8].type==PT_LOVE&&loverule[nnx][nny]==0)
parts[rt>>8].type=PT_NONE;
kill_part(rt>>8);
}
}
}
@ -1254,7 +1248,7 @@ void update_particles_i(pixel *vid, int start, int inc)
continue;
}
else if ((ny<9||nx<9||ny>YRES-7||nx>XRES-10)&&parts[r>>8].type==PT_LOLZ)
parts[r>>8].type = PT_NONE;
kill_part(r>>8);
else if (parts[r>>8].type==PT_LOLZ)
{
lolz[nx/9][ny/9] = 1;
@ -1283,7 +1277,7 @@ void update_particles_i(pixel *vid, int start, int inc)
else if (!rt)
continue;
else if (parts[rt>>8].type==PT_LOLZ&&lolzrule[nny][nnx]==0)
parts[rt>>8].type=PT_NONE;
kill_part(rt>>8);
}
}
@ -1334,7 +1328,7 @@ void update_particles_i(pixel *vid, int start, int inc)
createdsomething = 1;
}
else if (neighbors-1==goldelete&&gol[nx][ny]==golnum&&(grule[golnum][goldelete]==0||grule[golnum][goldelete]==2))//subtract 1 because it counted itself
parts[pmap[ny][nx]>>8].type = PT_NONE;
kill_part(pmap[ny][nx]>>8);
}
gol2[nx][ny][0] = 0;
for ( z = 1; z<NGOL; z++)
@ -1575,7 +1569,7 @@ void update_particles_i(pixel *vid, int start, int inc)
parts[i].ctype = parts[i].type;
if (ptypes[t].state==ST_GAS&&ptypes[parts[i].type].state!=ST_GAS)
pv[y/CELL][x/CELL] += 0.50f;
parts[i].type = t;
part_change_type(i,x,y,t);
if (t==PT_FIRE||t==PT_PLSM||t==PT_HFLM)
parts[i].life = rand()%50+120;
if (t==PT_LAVA) {
@ -1635,7 +1629,7 @@ void update_particles_i(pixel *vid, int start, int inc)
{
if (emap[ny][nx]==12 && !parts[i].life)
{
parts[i].type = PT_SPRK;
part_change_type(i,x,y,PT_SPRK);
parts[i].life = 4;
parts[i].ctype = t;
t = PT_SPRK;
@ -1678,7 +1672,7 @@ void update_particles_i(pixel *vid, int start, int inc)
}
else s = 0;
if (s) { // particle type change occurred
parts[i].type = t;
part_change_type(i,x,y,t);
if (t==PT_FIRE)
parts[i].life = rand()%50+120;
if (t==PT_NONE) {
@ -1699,8 +1693,9 @@ killed:
if (parts[i].type == PT_NONE)
continue;
int fin_x, fin_y, clear_x, clear_y;
float fin_xf, fin_yf, clear_xf, clear_yf;
if (!parts[i].vx&&!parts[i].vy)
continue;
#if defined(WIN32) && !defined(__GNUC__)
mv = max(fabsf(parts[i].vx), fabsf(parts[i].vy));
#else