diff options
| author | jacob1 <jfu614@gmail.com> | 2012-08-08 02:05:31 (GMT) |
|---|---|---|
| committer | jacksonmj <mj-pt@jacksonmj.co.uk> | 2012-08-09 20:17:38 (GMT) |
| commit | d9cba093633897a70b2af03ba5d1d7b2e5bd09b1 (patch) | |
| tree | 81ddebc088aa1d81831634a05fe1d48fbe2032a9 /src | |
| parent | f568bf21355d6845bc32869a2a8af052d08f5790 (diff) | |
| download | powder-d9cba093633897a70b2af03ba5d1d7b2e5bd09b1.zip powder-d9cba093633897a70b2af03ba5d1d7b2e5bd09b1.tar.gz | |
photon heating/cooling
Diffstat (limited to 'src')
| -rw-r--r-- | src/powder.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/powder.c b/src/powder.c index b3587cc..817c5f7 100644 --- a/src/powder.c +++ b/src/powder.c @@ -755,12 +755,15 @@ inline int create_part(int p, int x, int y, int tv)//the function for creating a if (t==SPC_HEAT||t==SPC_COOL) { - if ((pmap[y][x]&0xFF)!=PT_NONE&&(pmap[y][x]&0xFF)<PT_NUM) + int r = pmap[y][x]; + if (!(r&0xFF)) + r = photons[y][x]; + if ((r&0xFF)!=PT_NONE&&(r&0xFF)<PT_NUM) { - if (t==SPC_HEAT&&parts[pmap[y][x]>>8].temp<MAX_TEMP) + if (t==SPC_HEAT&&parts[r>>8].temp<MAX_TEMP) { float heatchange; - int r = pmap[y][x], fast = ((sdl_mod & (KMOD_SHIFT)) && (sdl_mod & (KMOD_CTRL))); + int fast = ((sdl_mod & (KMOD_SHIFT)) && (sdl_mod & (KMOD_CTRL))); if ((r&0xFF)==PT_PUMP || (r&0xFF)==PT_GPMP) heatchange = fast?1.0f:.1f; else @@ -768,10 +771,10 @@ inline int create_part(int p, int x, int y, int tv)//the function for creating a parts[r>>8].temp = restrict_flt(parts[r>>8].temp + heatchange, MIN_TEMP, MAX_TEMP); } - if (t==SPC_COOL&&parts[pmap[y][x]>>8].temp>MIN_TEMP) + if (t==SPC_COOL&&parts[r>>8].temp>MIN_TEMP) { float heatchange; - int r = pmap[y][x], fast = ((sdl_mod & (KMOD_SHIFT)) && (sdl_mod & (KMOD_CTRL))); + int fast = ((sdl_mod & (KMOD_SHIFT)) && (sdl_mod & (KMOD_CTRL))); if ((r&0xFF)==PT_PUMP || (r&0xFF)==PT_GPMP) heatchange = fast?1.0f:.1f; else @@ -779,7 +782,7 @@ inline int create_part(int p, int x, int y, int tv)//the function for creating a parts[r>>8].temp = restrict_flt(parts[r>>8].temp - heatchange, MIN_TEMP, MAX_TEMP); } - return pmap[y][x]>>8; + return r>>8; } else { |
