From 926450a9a3db03d0abd1afcff4ea0269415c0ced Mon Sep 17 00:00:00 2001 From: Cracker64 Date: Sun, 16 Jan 2011 20:54:41 -0500 Subject: [PATCH] more life types using states, put them in new menu. Maybe get some way to switch to new menu on mouseover of last spot of current life menu --- includes/defines.h | 2 +- includes/interface.h | 8 +++++--- includes/powder.h | 20 +++++++++++++++----- src/graphics.c | 18 ++++++++++++++++-- src/main.c | 2 +- 5 files changed, 38 insertions(+), 12 deletions(-) diff --git a/includes/defines.h b/includes/defines.h index 3d6b54981..562ee0dc6 100644 --- a/includes/defines.h +++ b/includes/defines.h @@ -61,7 +61,7 @@ extern unsigned char ZSIZE; #define STAMP_Y 4 #define STAMP_MAX 120 -#define NGOL 23 +#define NGOL 25 #define CIRCLE_BRUSH 0 #define SQUARE_BRUSH 1 diff --git a/includes/interface.h b/includes/interface.h index 159e2472f..29b5aadb1 100644 --- a/includes/interface.h +++ b/includes/interface.h @@ -52,9 +52,10 @@ static menu_wall mwalls[] = #define SC_LIQUID 4 #define SC_NUCLEAR 7 #define SC_LIFE 9 -#define SC_CRACKER 10 -#define SC_CRACKER2 11 -#define SC_TOTAL 10 +#define SC_LIFE2 10 +#define SC_CRACKER 12 +#define SC_CRACKER2 13 +#define SC_TOTAL 11 static menu_section msections[] = { @@ -68,6 +69,7 @@ static menu_section msections[] = {"\xC6", "Radioactive", 0, 1}, {"\xCC", "Special", 0, 1}, {"\xD2", "Life", 0, 1}, + {"\xD2", "More Life", 0, 1}, {"\xC8", "Cracker", 0, 0}, {"\xC8", "Cracker!", 0, 0}, }; diff --git a/includes/powder.h b/includes/powder.h index 1fdc3baeb..cc5980c42 100644 --- a/includes/powder.h +++ b/includes/powder.h @@ -193,7 +193,9 @@ #define PT_TEST 142 #define PT_TEST2 143 #define PT_TEST3 144 -#define PT_NUM 145 +#define PT_FROG 145 +#define PT_BRAN 146 +#define PT_NUM 147 #define R_TEMP 22 #define MAX_TEMP 9999 @@ -430,9 +432,11 @@ static const part_type ptypes[PT_NUM] = {"REPL", PIXPACK(0x259588), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 0, 1, 100, SC_LIFE, 9000.0f, 40, "B1357/S1357", TYPE_SOLID|PROP_LIFE, NULL}, {"MYST", PIXPACK(0x0C3C00), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 0, 1, 100, SC_LIFE, 9000.0f, 40, "B3458/S05678", TYPE_SOLID|PROP_LIFE, NULL}, {"BOYL", PIXPACK(0x0A3200), 1.0f, 0.01f * CFDS, 0.99f, 0.30f, -0.1f, 0.0f, 0.18f, 0.000f * CFDS, 0, 0, 0, 0, 1, 1, 1, SC_GAS, R_TEMP+2.0f +273.15f, 42, "Boyle, variable pressure gas. Expands when heated.", TYPE_GAS, NULL}, - {"TEST", PIXPACK(0xFF0000), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 0, 1, 100, SC_SPECIAL, 9000.0f, 40, "S3458/B37/4", TYPE_SOLID|PROP_LIFE, NULL}, - {"TES2", PIXPACK(0x00FF00), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 0, 1, 100, SC_SPECIAL, 9000.0f, 40, "S124/B3/3", TYPE_SOLID|PROP_LIFE, NULL}, - {"TES4", PIXPACK(0x0000FF), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 0, 1, 100, SC_SPECIAL, 9000.0f, 40, "S3456/B278/6", TYPE_SOLID|PROP_LIFE, NULL}, + {"LOTE", PIXPACK(0xFF0000), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 0, 1, 100, SC_LIFE2, 9000.0f, 40, "Behaves kinda like Living on the Edge S3458/B37/4", TYPE_SOLID|PROP_LIFE, NULL}, + {"FRG2", PIXPACK(0x00FF00), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 0, 1, 100, SC_LIFE2, 9000.0f, 40, "Like Frogs rule S124/B3/3", TYPE_SOLID|PROP_LIFE, NULL}, + {"STAR", PIXPACK(0x0000FF), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 0, 1, 100, SC_LIFE2, 9000.0f, 40, "Like Star Wars rule S3456/B278/6", TYPE_SOLID|PROP_LIFE, NULL}, + {"FROG", PIXPACK(0x00AA00), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 0, 1, 100, SC_LIFE2, 9000.0f, 40, "Frogs S12/B34/3", TYPE_SOLID|PROP_LIFE, NULL}, + {"BRAN", PIXPACK(0xCCCC00), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 0, 1, 100, SC_LIFE2, 9000.0f, 40, "Brian 6 S6/B246/3", TYPE_SOLID|PROP_LIFE, NULL}, //Name Colour Advec Airdrag Airloss Loss Collid Grav Diffus Hotair Fal Burn Exp Mel Hrd M Weights Section H Ins Description }; @@ -584,6 +588,8 @@ static part_state pstates[PT_NUM] = /* GOL */ {ST_NONE, PT_NONE, 0.0f, PT_NONE, 0.0f, PT_NONE, 0.0f, PT_NONE, 0.0f}, /* GOL */ {ST_NONE, PT_NONE, 0.0f, PT_NONE, 0.0f, PT_NONE, 0.0f, PT_NONE, 0.0f}, /* GOL */ {ST_NONE, PT_NONE, 0.0f, PT_NONE, 0.0f, PT_NONE, 0.0f, PT_NONE, 0.0f}, + /* GOL */ {ST_NONE, PT_NONE, 0.0f, PT_NONE, 0.0f, PT_NONE, 0.0f, PT_NONE, 0.0f}, + /* GOL */ {ST_NONE, PT_NONE, 0.0f, PT_NONE, 0.0f, PT_NONE, 0.0f, PT_NONE, 0.0f}, }; static int grule[NGOL][10] = @@ -611,7 +617,9 @@ static int grule[NGOL][10] = {1,0,0,2,2,3,1,1,3,2},//MYST {0,0,0,3,1,1,0,2,1,4},//TEST {0,1,1,2,1,0,0,0,0,3},//TEST2 - {0,0,2,1,1,1,1,2,2,6},//TEST2 + {0,0,2,1,1,1,1,2,2,6},//TEST3 + {0,1,1,2,2,0,0,0,0,3},//FROG + {0,0,2,0,2,0,3,0,0,3},//BRAN }; static int goltype[NGOL] = { @@ -637,6 +645,8 @@ static int goltype[NGOL] = PT_TEST, PT_TEST2, PT_TEST3, + PT_FROG, + PT_BRAN, }; static int loverule[9][9] = { diff --git a/src/graphics.c b/src/graphics.c index 824cee8aa..ffaa33339 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1726,9 +1726,9 @@ void draw_parts(pixel *vid) else if(t==PT_TEST2) { if(parts[i].tmp==2) - blendpixel(vid, nx, ny, 0, 100, 0, 255); + blendpixel(vid, nx, ny, 0, 100, 50, 255); else - blendpixel(vid, nx, ny, 0, 255, 0, 255); + blendpixel(vid, nx, ny, 0, 255, 90, 255); } else if(t==PT_TEST3) { @@ -1743,6 +1743,20 @@ void draw_parts(pixel *vid) else blendpixel(vid, nx, ny, 0, 0, 70, 255); } + else if(t==PT_FROG) + { + if(parts[i].tmp==2) + blendpixel(vid, nx, ny, 0, 100, 0, 255); + else + blendpixel(vid, nx, ny, 0, 255, 0, 255); + } + else if(t==PT_BRAN) + { + if(parts[i].tmp==1) + blendpixel(vid, nx, ny, 150, 150, 0, 255); + else + blendpixel(vid, nx, ny, 255, 255, 0, 255); + } else if(t==PT_DEUT) { diff --git a/src/main.c b/src/main.c index 8ff332909..63081788c 100644 --- a/src/main.c +++ b/src/main.c @@ -1522,7 +1522,7 @@ int main(int argc, char *argv[]) } } if((sdl_mod & (KMOD_RCTRL) )&&( sdl_mod & (KMOD_RALT))) - active_menu = 11; + active_menu = 12; if(sdl_key==SDLK_INSERT || sdl_key==SDLK_BACKQUOTE) REPLACE_MODE = !REPLACE_MODE; if(sdl_key=='g')