forked from github/server
fixoring compilation
BUG: dying factions got screwy spellbooks BUG: monsters should not die
This commit is contained in:
parent
9b073f22fd
commit
d956c2ec4b
6 changed files with 29 additions and 15 deletions
|
@ -41,7 +41,7 @@
|
|||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..;."
|
||||
AdditionalIncludeDirectories="..;../common;../external"
|
||||
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
|
@ -176,7 +176,7 @@
|
|||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="3"
|
||||
AdditionalIncludeDirectories="..;."
|
||||
AdditionalIncludeDirectories="..;../common;../external"
|
||||
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE;NDEBUG"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="2"
|
||||
|
@ -500,6 +500,10 @@
|
|||
RelativePath=".\kernel\spellid.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\kernel\sqlite.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\kernel\teleport.c"
|
||||
>
|
||||
|
|
|
@ -92,6 +92,7 @@ get_monsters(void)
|
|||
{
|
||||
static faction * monsters;
|
||||
static int gamecookie = -1;
|
||||
|
||||
if (gamecookie!=global.cookie) {
|
||||
monsters = NULL;
|
||||
gamecookie = global.cookie;
|
||||
|
@ -104,11 +105,13 @@ get_monsters(void)
|
|||
return monsters=f;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (monsters==NULL) {
|
||||
/* shit! */
|
||||
monsters = findfaction(666);
|
||||
if (monsters) fset(monsters, FFL_NPC);
|
||||
if (!monsters) {
|
||||
/* shit! */
|
||||
monsters = findfaction(666);
|
||||
}
|
||||
if (monsters) {
|
||||
fset(monsters, FFL_NPC|FFL_NOIDLEOUT);
|
||||
}
|
||||
}
|
||||
return monsters;
|
||||
}
|
||||
|
@ -272,6 +275,7 @@ destroyfaction(faction * f)
|
|||
fset(f, FFL_QUIT);
|
||||
|
||||
freelist(f->spellbook);
|
||||
f->spellbook = NULL;
|
||||
|
||||
while (f->battles) {
|
||||
struct bmsg * bm = f->battles;
|
||||
|
@ -466,7 +470,8 @@ boolean valid_race(const struct faction * f, const struct race * rc)
|
|||
if (f->race==rc) return true;
|
||||
else {
|
||||
const char * str = get_param(f->race->parameters, "other_race");
|
||||
return (str?rc_find(str)==rc:false);
|
||||
if (str) return (boolean)(rc_find(str)==rc);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1260,6 +1260,7 @@ readfaction(struct storage * store)
|
|||
}
|
||||
}
|
||||
read_groups(store, f);
|
||||
f->spellbook = NULL;
|
||||
read_spellist(&f->spellbook, store);
|
||||
return f;
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include <util/unicode.h>
|
||||
#include <sqlite3.h>
|
||||
#include <md5.h>
|
||||
#include <assert.h>
|
||||
|
||||
faction * get_faction_by_id(int uid)
|
||||
{
|
||||
|
@ -28,7 +29,7 @@ db_update_factions(sqlite3 * db)
|
|||
"INSERT OR IGNORE email (email,md5) VALUES (?,?)";
|
||||
const char * sql_select_email =
|
||||
"SELECT id FROM email WHERE md5=?";
|
||||
const char * sql_update_faction =
|
||||
const char sql_update_faction[] =
|
||||
"UPDATE faction SET email_id=?, lastturn=?, no=? WHERE id=?";
|
||||
|
||||
faction * f;
|
||||
|
@ -38,13 +39,13 @@ db_update_factions(sqlite3 * db)
|
|||
sqlite3_stmt *stmt_select;
|
||||
int res;
|
||||
|
||||
res = sqlite3_prepare_v2(db, sql_select_email, strlen(sql_select_email)+1, &stmt_select_email, NULL);
|
||||
res = sqlite3_prepare_v2(db, sql_select_email, (int)strlen(sql_select_email)+1, &stmt_select_email, NULL);
|
||||
if (res!=SQLITE_OK) return res;
|
||||
res = sqlite3_prepare_v2(db, sql_insert_email, strlen(sql_insert_email)+1, &stmt_insert_email, NULL);
|
||||
res = sqlite3_prepare_v2(db, sql_insert_email, (int)strlen(sql_insert_email)+1, &stmt_insert_email, NULL);
|
||||
if (res!=SQLITE_OK) return res;
|
||||
res = sqlite3_prepare_v2(db, sql_select, strlen(sql_select)+1, &stmt_select, NULL);
|
||||
res = sqlite3_prepare_v2(db, sql_select, (int)strlen(sql_select)+1, &stmt_select, NULL);
|
||||
if (res!=SQLITE_OK) return res;
|
||||
res = sqlite3_prepare_v2(db, sql_update_faction, strlen(sql_update_faction)+1, &stmt_update_faction, NULL);
|
||||
res = sqlite3_prepare_v2(db, sql_update_faction, sizeof(sql_update_faction), &stmt_update_faction, NULL);
|
||||
if (res!=SQLITE_OK) return res;
|
||||
|
||||
res = sqlite3_bind_int(stmt_select, 1, game_id);
|
||||
|
@ -75,7 +76,7 @@ db_update_factions(sqlite3 * db)
|
|||
int i;
|
||||
|
||||
md5_init(&ms);
|
||||
md5_append(&ms, (md5_byte_t*)lower, strlen(lower));
|
||||
md5_append(&ms, (md5_byte_t*)lower, (int)strlen(lower));
|
||||
md5_finish(&ms, digest);
|
||||
for (i=0;i!=16;++i) sprintf(md5hash+2*i, "%.02x", digest[i]);
|
||||
|
||||
|
|
|
@ -332,6 +332,10 @@
|
|||
RelativePath=".\tolua\bind_ship.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\tolua\bind_sqlite.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\tolua\bind_storage.c"
|
||||
>
|
||||
|
|
|
@ -599,7 +599,6 @@ tolua_region_open(lua_State* L)
|
|||
tolua_function(L, TOLUA_CAST "get_key", tolua_region_getkey);
|
||||
tolua_function(L, TOLUA_CAST "set_key", tolua_region_setkey);
|
||||
#if 0
|
||||
.property("owner", &lua_region_getowner, &lua_region_setowner)
|
||||
.property("herbtype", ®ion_getherbtype, ®ion_setherbtype)
|
||||
.def("add_notice", ®ion_addnotice)
|
||||
.def("add_direction", ®ion_adddirection)
|
||||
|
|
Loading…
Reference in a new issue