forked from github/server
fixing a couple of bugs that appeaerd when trying to run E2 with the E3
codebase
This commit is contained in:
parent
012cdf5066
commit
e429e9304d
|
@ -1872,7 +1872,6 @@ do_extra_spell(troop at, const att *a)
|
||||||
{
|
{
|
||||||
const spell *sp = a->data.sp;
|
const spell *sp = a->data.sp;
|
||||||
fighter *fi = at.fighter;
|
fighter *fi = at.fighter;
|
||||||
unit *au = fi->unit;
|
|
||||||
double power;
|
double power;
|
||||||
|
|
||||||
power = sp->level * MagicPower();
|
power = sp->level * MagicPower();
|
||||||
|
|
|
@ -93,7 +93,7 @@ getplanebyname(const char * name)
|
||||||
plane *p;
|
plane *p;
|
||||||
|
|
||||||
for (p=planes; p; p=p->next)
|
for (p=planes; p; p=p->next)
|
||||||
if (!strcmp(p->name, name))
|
if (p->name && !strcmp(p->name, name))
|
||||||
return p;
|
return p;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -204,7 +204,7 @@ r_insectstalled(const region * r)
|
||||||
const char *
|
const char *
|
||||||
rc_name(const race * rc, int n)
|
rc_name(const race * rc, int n)
|
||||||
{
|
{
|
||||||
return mkname("race", rc->_name[n]);
|
return rc?mkname("race", rc->_name[n]):NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
|
|
|
@ -303,7 +303,7 @@ report_race(const struct unit * u, const char ** name, const char ** illusion)
|
||||||
{
|
{
|
||||||
if (illusion) {
|
if (illusion) {
|
||||||
const race * irace = u_irace(u);
|
const race * irace = u_irace(u);
|
||||||
if (irace!=u->race) {
|
if (irace && irace!=u->race) {
|
||||||
*illusion = irace->_name[0];
|
*illusion = irace->_name[0];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -853,7 +853,7 @@ write_unit(struct storage * store, const unit * u)
|
||||||
store->w_int(store, u->number);
|
store->w_int(store, u->number);
|
||||||
store->w_int(store, u->age);
|
store->w_int(store, u->age);
|
||||||
store->w_tok(store, u->race->_name[0]);
|
store->w_tok(store, u->race->_name[0]);
|
||||||
store->w_tok(store, irace!=u->race?u->irace->_name[0]:"");
|
store->w_tok(store, (irace && irace!=u->race)?irace->_name[0]:"");
|
||||||
write_building_reference(u->building, store);
|
write_building_reference(u->building, store);
|
||||||
write_ship_reference(u->ship, store);
|
write_ship_reference(u->ship, store);
|
||||||
store->w_int(store, u->status);
|
store->w_int(store, u->status);
|
||||||
|
|
|
@ -1733,7 +1733,7 @@ scale_number (unit * u, int n)
|
||||||
|
|
||||||
const struct race * u_irace(const struct unit * u)
|
const struct race * u_irace(const struct unit * u)
|
||||||
{
|
{
|
||||||
if (skill_enabled[SK_STEALTH]) {
|
if (u->irace && skill_enabled[SK_STEALTH]) {
|
||||||
return u->irace;
|
return u->irace;
|
||||||
}
|
}
|
||||||
return u->race;
|
return u->race;
|
||||||
|
|
|
@ -164,10 +164,12 @@ tolua_building_create(lua_State* L)
|
||||||
const char * bname = tolua_tostring(L, 2, 0);
|
const char * bname = tolua_tostring(L, 2, 0);
|
||||||
if (bname) {
|
if (bname) {
|
||||||
const building_type * btype = bt_find(bname);
|
const building_type * btype = bt_find(bname);
|
||||||
|
if (btype) {
|
||||||
building * b = new_building(btype, r, NULL);
|
building * b = new_building(btype, r, NULL);
|
||||||
tolua_pushusertype(L, (void*)b, TOLUA_CAST "building");
|
tolua_pushusertype(L, (void*)b, TOLUA_CAST "building");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -664,7 +664,7 @@ static void
|
||||||
unit_setship(unit * u, ship * s)
|
unit_setship(unit * u, ship * s)
|
||||||
{
|
{
|
||||||
leave(u, true);
|
leave(u, true);
|
||||||
if (u->region!=s->region) {
|
if (s && u->region!=s->region) {
|
||||||
move_unit(u, s->region, NULL);
|
move_unit(u, s->region, NULL);
|
||||||
}
|
}
|
||||||
u->ship = s;
|
u->ship = s;
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
maxnmrs = 500
|
|
@ -625,12 +625,13 @@ function test_leave()
|
||||||
b2.size = 10
|
b2.size = 10
|
||||||
local u = unit.create(f, r, 1)
|
local u = unit.create(f, r, 1)
|
||||||
u.building = b1
|
u.building = b1
|
||||||
|
assert(u.building~=nil)
|
||||||
u:add_item("money", u.number * 100)
|
u:add_item("money", u.number * 100)
|
||||||
u:clear_orders()
|
u:clear_orders()
|
||||||
u:add_order("BETRETE BURG " .. itoa36(b2.id))
|
u:add_order("BETRETE BURG " .. itoa36(b2.id))
|
||||||
update_owners()
|
update_owners()
|
||||||
process_orders()
|
process_orders()
|
||||||
assert(u.building==b1)
|
assert(u.building.id==b1.id) -- region owners may not leave
|
||||||
end
|
end
|
||||||
|
|
||||||
function test_mallorn()
|
function test_mallorn()
|
||||||
|
@ -787,7 +788,7 @@ mytests = {
|
||||||
["owners"] = test_owners
|
["owners"] = test_owners
|
||||||
}
|
}
|
||||||
fail = 0
|
fail = 0
|
||||||
for k, v in pairs(mytests) do
|
for k, v in pairs(tests) do
|
||||||
local status, err = pcall(v)
|
local status, err = pcall(v)
|
||||||
if not status then
|
if not status then
|
||||||
fail = fail + 1
|
fail = fail + 1
|
||||||
|
|
Loading…
Reference in New Issue