update with latest

This commit is contained in:
Cracker64 2011-01-30 16:46:50 -05:00
parent fcf958da21
commit 8ed2947b4c
8 changed files with 158 additions and 45 deletions

View File

@ -24,10 +24,10 @@ void http_init(char *proxy);
void http_done(void); void http_done(void);
char *http_simple_get(char *uri, int *ret, int *len); char *http_simple_get(char *uri, int *ret, int *len);
char *http_auth_get(char *uri, char *user, char *pass, int *ret, int *len); char *http_auth_get(char *uri, char *user, char *pass, char * session_id, int *ret, int *len);
char *http_simple_post(char *uri, char *data, int dlen, int *ret, int *len); char *http_simple_post(char *uri, char *data, int dlen, int *ret, int *len);
void http_auth_headers(void *ctx, char *user, char *pass); void http_auth_headers(void *ctx, char *user, char *pass, char * session_id);
void *http_async_req_start(void *ctx, char *uri, char *data, int dlen, int keep); void *http_async_req_start(void *ctx, char *uri, char *data, int dlen, int keep);
void http_async_add_header(void *ctx, char *name, char *data); void http_async_add_header(void *ctx, char *name, char *data);
@ -36,7 +36,7 @@ void http_async_get_length(void *ctx, int *total, int *done);
char *http_async_req_stop(void *ctx, int *ret, int *len); char *http_async_req_stop(void *ctx, int *ret, int *len);
void http_async_req_close(void *ctx); void http_async_req_close(void *ctx);
char *http_multipart_post(char *uri, char **names, char **parts, int *plens, char *user, char *pass, int *ret, int *len); char *http_multipart_post(char *uri, char **names, char **parts, int *plens, char *user, char *pass, char * session_id, int *ret, int *len);
char *http_ret_text(int ret); char *http_ret_text(int ret);

View File

@ -118,6 +118,8 @@ extern int svf_admin;
extern int svf_mod; extern int svf_mod;
extern char svf_user[64]; extern char svf_user[64];
extern char svf_pass[64]; extern char svf_pass[64];
extern char svf_user_id[64];
extern char svf_session_id[64];
extern int svf_open; extern int svf_open;
extern int svf_own; extern int svf_own;

View File

@ -510,9 +510,8 @@ static const part_type ptypes[PT_NUM] =
{"GNAR", PIXPACK(0xE5B73B), 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, "B1/S1", ST_NONE, TYPE_SOLID|PROP_LIFE, NULL}, {"GNAR", PIXPACK(0xE5B73B), 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, "B1/S1", ST_NONE, TYPE_SOLID|PROP_LIFE, NULL},
{"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", ST_NONE, TYPE_SOLID|PROP_LIFE, NULL}, {"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", ST_NONE, 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", ST_NONE, 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", ST_NONE, 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.", ST_GAS, TYPE_GAS, &update_BOYL}, {"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.", ST_GAS, TYPE_GAS, &update_BOYL},
{"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", ST_NONE,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", ST_NONE, 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", ST_NONE, 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", ST_NONE, 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", ST_NONE, 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", ST_NONE, 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", ST_NONE, 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", ST_NONE, TYPE_SOLID|PROP_LIFE, NULL},

View File

@ -680,7 +680,7 @@ char *http_simple_get(char *uri, int *ret, int *len)
return http_async_req_stop(ctx, ret, len); return http_async_req_stop(ctx, ret, len);
} }
static char hex[] = "0123456789abcdef"; static char hex[] = "0123456789abcdef";
void http_auth_headers(void *ctx, char *user, char *pass) void http_auth_headers(void *ctx, char *user, char *pass, char *session_id)
{ {
char *tmp; char *tmp;
int i; int i;
@ -690,7 +690,6 @@ void http_auth_headers(void *ctx, char *user, char *pass)
if (user) if (user)
{ {
http_async_add_header(ctx, "X-Auth-User", user);
if (pass) if (pass)
{ {
md5_init(&md5); md5_init(&md5);
@ -710,9 +709,18 @@ void http_auth_headers(void *ctx, char *user, char *pass)
http_async_add_header(ctx, "X-Auth-Hash", tmp); http_async_add_header(ctx, "X-Auth-Hash", tmp);
free(tmp); free(tmp);
} }
if(session_id)
{
http_async_add_header(ctx, "X-Auth-User-Id", user);
http_async_add_header(ctx, "X-Auth-Session-Key", session_id);
}
else
{
http_async_add_header(ctx, "X-Auth-User", user);
}
} }
} }
char *http_auth_get(char *uri, char *user, char *pass, int *ret, int *len) char *http_auth_get(char *uri, char *user, char *pass, char *session_id, int *ret, int *len)
{ {
void *ctx = http_async_req_start(NULL, uri, NULL, 0, 0); void *ctx = http_async_req_start(NULL, uri, NULL, 0, 0);
@ -870,7 +878,7 @@ char *http_ret_text(int ret)
return "Unknown Status Code"; return "Unknown Status Code";
} }
} }
char *http_multipart_post(char *uri, char **names, char **parts, int *plens, char *user, char *pass, int *ret, int *len) char *http_multipart_post(char *uri, char **names, char **parts, int *plens, char *user, char *pass, char *session_id, int *ret, int *len)
{ {
void *ctx; void *ctx;
char *data = NULL, *tmp, *p; char *data = NULL, *tmp, *p;
@ -965,7 +973,7 @@ retry:
if (user) if (user)
{ {
http_async_add_header(ctx, "X-Auth-User", user); //http_async_add_header(ctx, "X-Auth-User", user);
if (pass) if (pass)
{ {
md5_init(&md5); md5_init(&md5);
@ -1023,6 +1031,15 @@ retry:
http_async_add_header(ctx, "X-Auth-Hash", tmp); http_async_add_header(ctx, "X-Auth-Hash", tmp);
free(tmp); free(tmp);
} }
if(session_id)
{
http_async_add_header(ctx, "X-Auth-User-Id", user);
http_async_add_header(ctx, "X-Auth-Session-Key", session_id);
}
else
{
http_async_add_header(ctx, "X-Auth-User", user);
}
} }
if (data) if (data)

View File

@ -25,7 +25,9 @@ int svf_login = 0;
int svf_admin = 0; int svf_admin = 0;
int svf_mod = 0; int svf_mod = 0;
char svf_user[64] = ""; char svf_user[64] = "";
char svf_user_id[64] = "";
char svf_pass[64] = ""; char svf_pass[64] = "";
char svf_session_id[64] = "";
int svf_open = 0; int svf_open = 0;
int svf_own = 0; int svf_own = 0;
@ -836,7 +838,7 @@ void login_ui(pixel *vid_buf)
res = http_multipart_post( res = http_multipart_post(
"http://" SERVER "/Login.api", "http://" SERVER "/Login.api",
NULL, NULL, NULL, NULL, NULL, NULL,
svf_user, svf_pass, svf_user, svf_pass, NULL,
&err, NULL); &err, NULL);
if (err != 200) if (err != 200)
{ {
@ -845,14 +847,27 @@ void login_ui(pixel *vid_buf)
free(res); free(res);
goto fail; goto fail;
} }
if (res && !strncmp(res, "OK", 2)) if (res && !strncmp(res, "OK ", 3))
{ {
if (!strcmp(res, "OK ADMIN")) char *s_id,*u_e,*nres;
s_id = strchr(res+3, ' ');
*(s_id++) = 0;
u_e = strchr(s_id, ' ');
*(u_e++) = 0;
strcpy(svf_user_id, res+3);
strcpy(svf_session_id, s_id);
nres = mystrdup(u_e);
printf("\n{%s} {%s} {%s}\n", svf_user_id, svf_session_id, nres);
if (!strncmp(nres, "ADMIN", 5))
{ {
svf_admin = 1; svf_admin = 1;
svf_mod = 0; svf_mod = 0;
} }
else if (!strcmp(res, "OK MOD")) else if (!strncmp(nres, "MOD", 3))
{ {
svf_admin = 0; svf_admin = 0;
svf_mod = 1; svf_mod = 1;
@ -874,6 +889,8 @@ void login_ui(pixel *vid_buf)
fail: fail:
strcpy(svf_user, ""); strcpy(svf_user, "");
strcpy(svf_pass, ""); strcpy(svf_pass, "");
strcpy(svf_user_id, "");
strcpy(svf_session_id, "");
svf_login = 0; svf_login = 0;
svf_own = 0; svf_own = 0;
svf_admin = 0; svf_admin = 0;
@ -2489,7 +2506,8 @@ int search_ui(pixel *vid_buf)
http = http_async_req_start(http, uri, NULL, 0, 1); http = http_async_req_start(http, uri, NULL, 0, 1);
if (svf_login) if (svf_login)
{ {
http_auth_headers(http, svf_user, svf_pass); //http_auth_headers(http, svf_user, svf_pass);
http_auth_headers(http, svf_user_id, NULL, svf_session_id);
} }
http_last_use = time(NULL); http_last_use = time(NULL);
free(uri); free(uri);
@ -2757,8 +2775,10 @@ int open_ui(pixel *vid_buf, char *save_id, char *save_date)
http_2 = http_async_req_start(http_2, uri_2, NULL, 0, 1); http_2 = http_async_req_start(http_2, uri_2, NULL, 0, 1);
if (svf_login) if (svf_login)
{ {
http_auth_headers(http, svf_user, svf_pass); //http_auth_headers(http, svf_user, svf_pass);
http_auth_headers(http_2, svf_user, svf_pass); //http_auth_headers(http_2, svf_user, svf_pass);
http_auth_headers(http, svf_user_id, NULL, svf_session_id);
http_auth_headers(http_2, svf_user_id, NULL, svf_session_id);
} }
http_last_use = time(NULL); http_last_use = time(NULL);
http_last_use_2 = time(NULL); http_last_use_2 = time(NULL);
@ -3483,7 +3503,7 @@ int execute_tagop(pixel *vid_buf, char *op, char *tag)
result = http_multipart_post( result = http_multipart_post(
uri, uri,
names, parts, NULL, names, parts, NULL,
svf_user, svf_pass, svf_user_id, /*svf_pass*/NULL, svf_session_id,
&status, NULL); &status, NULL);
free(uri); free(uri);
@ -3543,7 +3563,7 @@ void execute_save(pixel *vid_buf)
result = http_multipart_post( result = http_multipart_post(
"http://" SERVER "/Save.api", "http://" SERVER "/Save.api",
names, parts, plens, names, parts, plens,
svf_user, svf_pass, svf_user_id, /*svf_pass*/NULL, svf_session_id,
&status, NULL); &status, NULL);
if (svf_last) if (svf_last)
@ -3600,7 +3620,7 @@ int execute_delete(pixel *vid_buf, char *id)
result = http_multipart_post( result = http_multipart_post(
"http://" SERVER "/Delete.api", "http://" SERVER "/Delete.api",
names, parts, NULL, names, parts, NULL,
svf_user, svf_pass, svf_user_id, /*svf_pass*/NULL, svf_session_id,
&status, NULL); &status, NULL);
if (status!=200) if (status!=200)
@ -3636,7 +3656,7 @@ void execute_submit(pixel *vid_buf, char *id, char *message)
result = http_multipart_post( result = http_multipart_post(
"http://" SERVER "/Comment.api", "http://" SERVER "/Comment.api",
names, parts, NULL, names, parts, NULL,
svf_user, svf_pass, svf_user_id, /*svf_pass*/NULL, svf_session_id,
&status, NULL); &status, NULL);
if (status!=200) if (status!=200)
@ -3671,7 +3691,7 @@ int execute_report(pixel *vid_buf, char *id, char *reason)
result = http_multipart_post( result = http_multipart_post(
"http://" SERVER "/Report.api", "http://" SERVER "/Report.api",
names, parts, NULL, names, parts, NULL,
svf_user, svf_pass, svf_user_id, /*svf_pass*/NULL, svf_session_id,
&status, NULL); &status, NULL);
if (status!=200) if (status!=200)
@ -3706,7 +3726,7 @@ void execute_fav(pixel *vid_buf, char *id)
result = http_multipart_post( result = http_multipart_post(
"http://" SERVER "/Favourite.api", "http://" SERVER "/Favourite.api",
names, parts, NULL, names, parts, NULL,
svf_user, svf_pass, svf_user_id, /*svf_pass*/NULL, svf_session_id,
&status, NULL); &status, NULL);
if (status!=200) if (status!=200)
@ -3741,7 +3761,7 @@ int execute_vote(pixel *vid_buf, char *id, char *action)
result = http_multipart_post( result = http_multipart_post(
"http://" SERVER "/Vote.api", "http://" SERVER "/Vote.api",
names, parts, NULL, names, parts, NULL,
svf_user, svf_pass, svf_user_id, /*svf_pass*/NULL, svf_session_id,
&status, NULL); &status, NULL);
if (status!=200) if (status!=200)
@ -3789,8 +3809,15 @@ void open_link(char *uri) {
printf("Cannot open browser\n"); printf("Cannot open browser\n");
#endif #endif
} }
struct command_history {
void *prev_command;
char *command;
};
typedef struct command_history command_history;
command_history *last_command = NULL;
char *console_ui(pixel *vid_buf,char error[255]) { //TODO: error messages, show previous commands char *console_ui(pixel *vid_buf,char error[255]) { //TODO: error messages, show previous commands
int mx,my,b,bq; int mx,my,b,bq,cc,ci = -1;
command_history *currentcommand;
ui_edit ed; ui_edit ed;
ed.x = 15; ed.x = 15;
ed.y = 210; ed.y = 210;
@ -3820,6 +3847,30 @@ char *console_ui(pixel *vid_buf,char error[255]) { //TODO: error messages, show
"Reset works with pressure, velocity, sparks, temp (ex. 'reset pressure')\n" "Reset works with pressure, velocity, sparks, temp (ex. 'reset pressure')\n"
"To load a save use load saveID (ex. load 1337)" "To load a save use load saveID (ex. load 1337)"
,255, 187, 187, 255); ,255, 187, 187, 255);
cc = 0;
currentcommand = last_command;
while(cc < 10)
{
if(currentcommand==NULL)
break;
drawtext(vid_buf, 15, 175-(cc*12), currentcommand->command, 255, 255, 255, 255);
if(currentcommand->prev_command!=NULL)
{
if(cc<9) {
currentcommand = currentcommand->prev_command;
} else if(currentcommand->prev_command!=NULL){
free(currentcommand->prev_command);
currentcommand->prev_command = NULL;
}
cc++;
}
else
{
break;
}
}
if(error) if(error)
drawtext(vid_buf, 15, 190, error,255, 187, 187, 255); drawtext(vid_buf, 15, 190, error,255, 187, 187, 255);
ui_edit_draw(vid_buf, &ed); ui_edit_draw(vid_buf, &ed);
@ -3827,6 +3878,11 @@ char *console_ui(pixel *vid_buf,char error[255]) { //TODO: error messages, show
sdl_blit(0, 0, (XRES+BARSIZE), YRES+MENUSIZE, vid_buf, (XRES+BARSIZE)); sdl_blit(0, 0, (XRES+BARSIZE), YRES+MENUSIZE, vid_buf, (XRES+BARSIZE));
if (sdl_key==SDLK_RETURN) if (sdl_key==SDLK_RETURN)
{ {
currentcommand = malloc(sizeof(command_history));
memset(currentcommand, 0, sizeof(command_history));
currentcommand->prev_command = last_command;
currentcommand->command = mystrdup(ed.str);
last_command = currentcommand;
return ed.str; return ed.str;
} }
if (sdl_key==SDLK_ESCAPE || sdl_key==SDLK_BACKQUOTE) if (sdl_key==SDLK_ESCAPE || sdl_key==SDLK_BACKQUOTE)
@ -3834,6 +3890,34 @@ char *console_ui(pixel *vid_buf,char error[255]) { //TODO: error messages, show
console_mode = 0; console_mode = 0;
return NULL; return NULL;
} }
if(sdl_key==SDLK_UP || sdl_key==SDLK_DOWN)
{
ci += sdl_key==SDLK_UP?1:-1;
if(ci<-1)
ci = -1;
if(ci==-1)
{
strcpy(ed.str, "");
}
else
{
if(last_command!=NULL){
currentcommand = last_command;
for (cc = 0; cc<ci; cc++) {
if(currentcommand->prev_command==NULL)
ci = cc;
else
currentcommand = currentcommand->prev_command;
}
strcpy(ed.str, currentcommand->command);
}
else
{
ci = -1;
strcpy(ed.str, "");
}
}
}
} }

View File

@ -492,6 +492,10 @@ int parse_save(void *save, int size, int replace, int x0, int y0)
memset(vx, 0, sizeof(vx)); memset(vx, 0, sizeof(vx));
memset(vy, 0, sizeof(vy)); memset(vy, 0, sizeof(vy));
memset(pv, 0, sizeof(pv)); memset(pv, 0, sizeof(pv));
memset(photons, 0, sizeof(photons));
memset(wireless, 0, sizeof(wireless));
memset(gol2, 0, sizeof(gol2));
memset(portal, 0, sizeof(portal));
death = death2 = ISSPAWN1 = ISSPAWN2 = 0; death = death2 = ISSPAWN1 = ISSPAWN2 = 0;
} }
@ -714,7 +718,7 @@ int parse_save(void *save, int size, int replace, int x0, int y0)
ttv |= (d[p++]); ttv |= (d[p++]);
parts[i-1].tmp = ttv; parts[i-1].tmp = ttv;
if(ptypes[parts[i-1].type].properties&PROP_LIFE && !parts[i-1].tmp) if(ptypes[parts[i-1].type].properties&PROP_LIFE && !parts[i-1].tmp)
for(q = 1; q<NGOL ; q++){ for(q = 1; q<NGOL ; q++) {
if(parts[i-1].type==goltype[q-1] && grule[q][9]==2) if(parts[i-1].type==goltype[q-1] && grule[q][9]==2)
parts[i-1].tmp = grule[q][9]-1; parts[i-1].tmp = grule[q][9]-1;
} }

View File

@ -5,6 +5,7 @@
#include "defines.h" #include "defines.h"
#include "interface.h" #include "interface.h"
#include "graphics.h" #include "graphics.h"
#include "powder.h"
//Signum function //Signum function
#if defined(WIN32) && !defined(__GNUC__) #if defined(WIN32) && !defined(__GNUC__)
@ -95,7 +96,9 @@ void save_presets(int do_update)
return; return;
fwrite(sig, 1, 4, f); fwrite(sig, 1, 4, f);
save_string(f, svf_user); save_string(f, svf_user);
save_string(f, svf_pass); //save_string(f, svf_pass);
save_string(f, svf_user_id);
save_string(f, svf_session_id);
fwrite(&tmp, 1, 1, f); fwrite(&tmp, 1, 1, f);
tmp = cmode; tmp = cmode;
fwrite(&tmp, 1, 1, f); fwrite(&tmp, 1, 1, f);
@ -144,7 +147,11 @@ void load_presets(void)
} }
if (load_string(f, svf_user, 63)) if (load_string(f, svf_user, 63))
goto fail; goto fail;
if (load_string(f, svf_pass, 63)) //if (load_string(f, svf_pass, 63))
//goto fail;
if (load_string(f, svf_user_id, 63))
goto fail;
if (load_string(f, svf_session_id, 63))
goto fail; goto fail;
svf_login = !!svf_user[0]; svf_login = !!svf_user[0];
if (fread(&tmp, 1, 1, f) != 1) if (fread(&tmp, 1, 1, f) != 1)
@ -152,7 +159,7 @@ void load_presets(void)
sdl_scale = (tmp == 2) ? 2 : 1; sdl_scale = (tmp == 2) ? 2 : 1;
if (fread(&tmp, 1, 1, f) != 1) if (fread(&tmp, 1, 1, f) != 1)
goto fail; goto fail;
cmode = tmp%7; cmode = tmp%CM_COUNT;
if (fread(&tmp, 1, 1, f) != 1) if (fread(&tmp, 1, 1, f) != 1)
goto fail; goto fail;
svf_admin = tmp; svf_admin = tmp;

View File

@ -664,9 +664,9 @@ inline int create_part(int p, int x, int y, int t)
parts[i].life = 50; parts[i].life = 50;
parts[i].tmp = 50; parts[i].tmp = 50;
} }
if(ptypes[t].properties&PROP_LIFE) { if (ptypes[t].properties&PROP_LIFE) {
int r; int r;
for(r = 0;r<NGOL;r++) for(r = 0; r<NGOL; r++)
if(t==goltype[r]) if(t==goltype[r])
parts[i].tmp = grule[r+1][9] - 1; parts[i].tmp = grule[r+1][9] - 1;
} }