summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2011-05-24 13:55:29 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2011-05-24 13:55:29 (GMT)
commit453c69d39aa565ba61aef98f0f7b7bc8f3b94da0 (patch)
tree3675b28e5774d1b9f72eccaa4ac554f380b666c7 /src
parenteafcdf8ec94b058707f1a6b8a2b9b5076c6275ca (diff)
parent956218736b557eb91bb4d841006ddce0d3cdbeed (diff)
downloadpowder-453c69d39aa565ba61aef98f0f7b7bc8f3b94da0.zip
powder-453c69d39aa565ba61aef98f0f7b7bc8f3b94da0.tar.gz
Merge branch 'master' of github.com:FacialTurd/The-Powder-Toy
Diffstat (limited to 'src')
-rw-r--r--src/elements/neut.c10
-rw-r--r--src/interface.c58
-rw-r--r--src/main.c22
3 files changed, 78 insertions, 12 deletions
diff --git a/src/elements/neut.c b/src/elements/neut.c
index 9e77898..20d4618 100644
--- a/src/elements/neut.c
+++ b/src/elements/neut.c
@@ -2,9 +2,9 @@
#if defined(WIN32) && !defined(__GNUC__)
-_inline int create_n_parts(int n, int x, int y, float vx, float vy, int t)
+_inline int create_n_parts(int n, int x, int y, float vx, float vy, float temp, int t)
#else
-inline int create_n_parts(int n, int x, int y, float vx, float vy, int t)//testing a new deut create part
+inline int create_n_parts(int n, int x, int y, float vx, float vy, float temp, int t)//testing a new deut create part
#endif
{
int i, c;
@@ -33,7 +33,7 @@ inline int create_n_parts(int n, int x, int y, float vx, float vy, int t)//testi
parts[i].vx = r*cosf(a);
parts[i].vy = r*sinf(a);
parts[i].ctype = 0;
- parts[i].temp += (n*170);
+ parts[i].temp = temp;
parts[i].tmp = 0;
if (t!=PT_STKM&&t!=PT_STKM2 && t!=PT_PHOT && t!=PT_NEUT && !pmap[y][x])
pmap[y][x] = t|(i<<8);
@@ -81,9 +81,9 @@ int update_NEUT(UPDATE_FUNC_ARGS) {
update_PYRO(UPDATE_FUNC_SUBCALL_ARGS);
}
#ifdef SDEUT
- else if ((r&0xFF)==PT_DEUT && (pressureFactor+1+(parts[i].life/100))>(rand()%1000))
+ else if ((r&0xFF)==PT_DEUT && (pressureFactor+1+(parts[r>>8].life/100))>(rand()%1000))
{
- create_n_parts(parts[r>>8].life, x+rx, y+ry, parts[i].vx, parts[i].vy, PT_NEUT);
+ create_n_parts(parts[r>>8].life, x+rx, y+ry, parts[i].vx, parts[i].vy, restrict_flt(parts[r>>8].temp + parts[r>>8].life*500, MIN_TEMP, MAX_TEMP), PT_NEUT);
kill_part(r>>8);
}
#else
diff --git a/src/interface.c b/src/interface.c
index ff4968a..35fac84 100644
--- a/src/interface.c
+++ b/src/interface.c
@@ -4360,7 +4360,7 @@ void decorations_ui(pixel *vid_buf,pixel *decorations,int *bsx,int *bsy)
drawrect(vid_buf, window_offset_x + onleft_button_offset_x +1, window_offset_y +255+6, 12, 12, 255, 255, 255, 255);
drawrect(vid_buf, window_offset_x + 230, window_offset_y +255+6, 26, 12, 255, 255, 255, 255);
drawtext(vid_buf, window_offset_x + 232, window_offset_y +255+9, "Clear", 255, 255, 255, 255);
- drawtext(vid_buf, 2, 388, "Welcome to the decoration editor v.1 (by cracker64) \n\nPro tip: click the current color to move the selector to the other side. Left click is eraser. ", 255, 255, 255, 255);
+ drawtext(vid_buf, 2, 388, "Welcome to the decoration editor v.1 (by cracker64) \n\nPro tip: click the current color to move the selector to the other side. Right click is eraser. ", 255, 255, 255, 255);
ui_edit_draw(vid_buf, &box_R);
ui_edit_draw(vid_buf, &box_G);
ui_edit_draw(vid_buf, &box_B);
@@ -4557,6 +4557,62 @@ void decorations_ui(pixel *vid_buf,pixel *decorations,int *bsx,int *bsy)
}*/
}
}
+ if (sdl_key==SDLK_LEFTBRACKET) {
+ if (sdl_mod & (KMOD_LALT|KMOD_RALT) && !(sdl_mod & (KMOD_SHIFT|KMOD_CTRL)))
+ {
+ *bsx -= 1;
+ *bsy -= 1;
+ }
+ else if (sdl_mod & (KMOD_SHIFT) && !(sdl_mod & (KMOD_CTRL)))
+ {
+ *bsx -= 1;
+ }
+ else if (sdl_mod & (KMOD_CTRL) && !(sdl_mod & (KMOD_SHIFT)))
+ {
+ *bsy -= 1;
+ }
+ else
+ {
+ *bsx -= ceil((*bsx/5)+0.5f);
+ *bsy -= ceil((*bsy/5)+0.5f);
+ }
+ if (*bsx>1180)
+ *bsx = 1180;
+ if (*bsy>1180)
+ *bsy = 1180;
+ if (*bsx<0)
+ *bsx = 0;
+ if (*bsy<0)
+ *bsy = 0;
+ }
+ if (sdl_key==SDLK_RIGHTBRACKET) {
+ if (sdl_mod & (KMOD_LALT|KMOD_RALT) && !(sdl_mod & (KMOD_SHIFT|KMOD_CTRL)))
+ {
+ *bsx += 1;
+ *bsy += 1;
+ }
+ else if (sdl_mod & (KMOD_SHIFT) && !(sdl_mod & (KMOD_CTRL)))
+ {
+ *bsx += 1;
+ }
+ else if (sdl_mod & (KMOD_CTRL) && !(sdl_mod & (KMOD_SHIFT)))
+ {
+ *bsy += 1;
+ }
+ else
+ {
+ *bsx += ceil((*bsx/5)+0.5f);
+ *bsy += ceil((*bsy/5)+0.5f);
+ }
+ if (*bsx>1180)
+ *bsx = 1180;
+ if (*bsy>1180)
+ *bsy = 1180;
+ if (*bsx<0)
+ *bsx = 0;
+ if (*bsy<0)
+ *bsy = 0;
+ }
if(sdl_key=='b' || sdl_key==SDLK_ESCAPE)
{
free(old_buf);
diff --git a/src/main.c b/src/main.c
index 1f12c3f..e2b872f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -173,6 +173,7 @@ int sys_pause = 0;
int sys_shortcuts = 1;
int legacy_enable = 0; //Used to disable new features such as heat, will be set by save.
int ngrav_enable = 0; //Newtonian gravity, will be set by save
+int decorations_enable = 1;
int death = 0, framerender = 0;
int amd = 1;
int FPSB = 0;
@@ -2010,8 +2011,6 @@ int main(int argc, char *argv[])
vy[ny][nx] = -vy[ny][nx];
}
}
- if ((sdl_mod & (KMOD_RCTRL) )&&( sdl_mod & (KMOD_RALT)))
- active_menu = 11;
if (sdl_key==SDLK_INSERT)// || sdl_key==SDLK_BACKQUOTE)
REPLACE_MODE = !REPLACE_MODE;
if (sdl_key==SDLK_BACKQUOTE)
@@ -2021,8 +2020,19 @@ int main(int argc, char *argv[])
}
if (sdl_key=='b')
{
- decorations_ui(vid_buf,decorations,&bsx,&bsy);//decoration_mode = !decoration_mode;
- sys_pause=1;
+ if (sdl_mod & KMOD_CTRL)
+ {
+ decorations_enable = !decorations_enable;
+ itc = 51;
+ if (decorations_enable) strcpy(itc_msg, "Decorations layer: On");
+ else strcpy(itc_msg, "Decorations layer: Off");
+ }
+ else
+ {
+ decorations_ui(vid_buf,decorations,&bsx,&bsy);//decoration_mode = !decoration_mode;
+ decorations_enable = 1;
+ sys_pause=1;
+ }
}
if (sdl_key=='g')
{
@@ -2316,7 +2326,7 @@ int main(int argc, char *argv[])
}
}
menu_ui_v3(vid_buf, active_menu, &sl, &sr, &dae, b, bq, x, y); //draw the elements in the current menu
- draw_decorations(vid_buf,decorations);
+ if (decorations_enable) draw_decorations(vid_buf,decorations);
if (zoom_en && x>=sdl_scale*zoom_wx && y>=sdl_scale*zoom_wy //change mouse position while it is in a zoom window
&& x<sdl_scale*(zoom_wx+ZFACTOR*ZSIZE)
&& y<sdl_scale*(zoom_wy+ZFACTOR*ZSIZE))
@@ -3000,7 +3010,7 @@ int main(int argc, char *argv[])
drawtext(vid_buf, 16, YRES-24, "Click-and-drag to specify a rectangle to copy (right click = cancel).", 255, 216, 32, da*5);
break;
case 270:
- drawtext(vid_buf, 16, YRES-24, "Enable or disable compatibility mode (disables heat simulation).", 255, 255, 255, da*5);
+ drawtext(vid_buf, 16, YRES-24, "Simulation options", 255, 255, 255, da*5);
break;
case 271:
drawtext(vid_buf, 16, YRES-24, "You're a moderator", 255, 255, 255, da*5);