diff options
| author | Philip <philip@philip-linuxlaptop.(none)> | 2010-10-04 04:27:40 (GMT) |
|---|---|---|
| committer | Philip <philip@philip-linuxlaptop.(none)> | 2010-10-04 04:29:37 (GMT) |
| commit | e4f9f77de906d65264c7d09635761dd05940e1aa (patch) | |
| tree | 6506a2c66d8c923136caba7274145c20106b73f0 /includes/interface.h | |
| parent | ebb784de700240d0f8c2f2c5ffe3d2ab783c6557 (diff) | |
| download | powder-e4f9f77de906d65264c7d09635761dd05940e1aa.zip powder-e4f9f77de906d65264c7d09635761dd05940e1aa.tar.gz | |
Updating
Diffstat (limited to 'includes/interface.h')
| -rw-r--r-- | includes/interface.h | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/includes/interface.h b/includes/interface.h new file mode 100644 index 0000000..7f13064 --- /dev/null +++ b/includes/interface.h @@ -0,0 +1,183 @@ +#ifndef INTERFACE_H +#define INTERFACE_H +#include <SDL/SDL.h> +#include "graphics.h" + +struct menu_section +{ + char *icon; + const char *name; + int itemcount; +}; +typedef struct menu_section menu_section; + +struct menu_wall +{ + pixel colour; + const char *descs; +}; +typedef struct menu_wall menu_wall; + +static menu_wall mwalls[] = +{ + {PIXPACK(0xC0C0C0), "Wall. Indestructible. Blocks everything. Conductive."}, + {PIXPACK(0x808080), "E-Wall. Becomes transparent when electricity is connected."}, + {PIXPACK(0xFF8080), "Detector. Generates electricity when a particle is inside."}, + {PIXPACK(0x808080), "Streamline. Set start point of a streamline."}, + {PIXPACK(0x808080), "Sign. Click on a sign to edit it or anywhere else to place a new one."}, + {PIXPACK(0x8080FF), "Fan. Accelerates air. Use line tool to set direction and strength."}, + {PIXPACK(0xC0C0C0), "Wall. Blocks most particles but lets liquids through. Conductive."}, + {PIXPACK(0x808080), "Wall. Absorbs particles but lets air currents through."}, + {PIXPACK(0x808080), "Erases walls."}, + {PIXPACK(0x808080), "Wall. Indestructible. Blocks everything."}, + {PIXPACK(0x3C3C3C), "Wall. Indestructible. Blocks particles, allows air"}, + {PIXPACK(0x575757), "Wall. Indestructible. Blocks liquids and gasses, allows solids"}, + {PIXPACK(0xFFFF22), "Conductor, allows particles, conducts electricity"}, + {PIXPACK(0x242424), "E-Hole, absorbs particles, release them when powered"}, + {PIXPACK(0xFFFFFF), "Air, creates airflow and pressure"}, + {PIXPACK(0xFFBB00), "Heats the targetted element."}, + {PIXPACK(0x00BBFF), "Cools the targetted element."}, + {PIXPACK(0x303030), "Vacuum, reduces air pressure."}, + {PIXPACK(0x579777), "Wall. Indestructible. Blocks liquids and solids, allows gasses"}, +}; + +#define SC_WALL 0 +#define SC_SPECIAL 8 +#define SC_POWDERS 5 +#define SC_SOLIDS 6 +#define SC_ELEC 1 +#define SC_EXPLOSIVE 2 +#define SC_GAS 3 +#define SC_LIQUID 4 +#define SC_NUCLEAR 7 +#define SC_TOTAL 9 + +static menu_section msections[] = +{ + {"\xC1", "Walls", 0}, + {"\xC2", "Electronics", 0}, + {"\xC3", "Explosives", 0}, + {"\xC5", "Gasses", 0}, + {"\xC4", "Liquids", 0}, + {"\xD0", "Powders", 0}, + {"\xD1", "Solids", 0}, + {"\xC6", "Radioactive", 0}, + {"\xCC", "Special", 0}, +}; + +struct ui_edit +{ + int x, y, w, nx; + char str[256],*def; + int focus, cursor, hide; +}; +typedef struct ui_edit ui_edit; + +struct ui_checkbox +{ + int x, y; + int focus, checked; +}; +typedef struct ui_checkbox ui_checkbox; + +extern SDLMod sdl_mod; +extern int sdl_key, sdl_wheel, sdl_caps, sdl_ascii, sdl_zoom_trig; +extern char *shift_0; +extern char *shift_1; +extern int svf_login; +extern int svf_admin; +extern int svf_mod; +extern char svf_user[64]; +extern char svf_pass[64]; + +extern int svf_open; +extern int svf_own; +extern int svf_myvote; +extern int svf_publish; +extern char svf_id[16]; +extern char svf_name[64]; +extern char svf_tags[256]; +extern void *svf_last; +extern int svf_lsize; + +extern char *search_ids[GRID_X*GRID_Y]; +extern char *search_dates[GRID_X*GRID_Y]; +extern int search_votes[GRID_X*GRID_Y]; +extern int search_publish[GRID_X*GRID_Y]; +extern int search_scoredown[GRID_X*GRID_Y]; +extern int search_scoreup[GRID_X*GRID_Y]; +extern char *search_names[GRID_X*GRID_Y]; +extern char *search_owners[GRID_X*GRID_Y]; +extern void *search_thumbs[GRID_X*GRID_Y]; +extern int search_thsizes[GRID_X*GRID_Y]; + +extern int search_own; +extern int search_date; +extern int search_page; +extern char search_expr[256]; + +extern char *tag_names[TAG_MAX]; +extern int tag_votes[TAG_MAX]; + +extern int Z_keysym; + +extern int zoom_en; +extern int zoom_x, zoom_y; +extern int zoom_wx, zoom_wy; + +void menu_count(void); + +void get_sign_pos(int i, int *x0, int *y0, int *w, int *h); + +void add_sign_ui(pixel *vid_buf, int mx, int my); + +void ui_edit_draw(pixel *vid_buf, ui_edit *ed); + +void ui_edit_process(int mx, int my, int mb, ui_edit *ed); + +void ui_checkbox_draw(pixel *vid_buf, ui_checkbox *ed); + +void ui_checkbox_process(int mx, int my, int mb, int mbq, ui_checkbox *ed); + +void draw_svf_ui(pixel *vid_buf); + +void error_ui(pixel *vid_buf, int err, char *txt); + +void info_ui(pixel *vid_buf, char *top, char *txt); + +void info_box(pixel *vid_buf, char *msg); + +int confirm_ui(pixel *vid_buf, char *top, char *msg, char *btn); + +void login_ui(pixel *vid_buf); + +int stamp_ui(pixel *vid_buf); + +void tag_list_ui(pixel *vid_buf); + +int save_name_ui(pixel *vid_buf); + +void menu_ui(pixel *vid_buf, int i, int *sl, int *sr); + +void menu_ui_v3(pixel *vid_buf, int i, int *sl, int *sr, int b, int bq, int mx, int my); + +int sdl_poll(void); + +void set_cmode(int cm); + +char *download_ui(pixel *vid_buf, char *uri, int *len); + +int search_ui(pixel *vid_buf); + +int search_results(char *str, int votes); + +int execute_tagop(pixel *vid_buf, char *op, char *tag); + +void execute_save(pixel *vid_buf); + +void execute_delete(pixel *vid_buf, char *id); + +int execute_vote(pixel *vid_buf, char *id, char *action); + +#endif + |
