[Fixing] Y NO WERK!?

This commit is contained in:
Allanis 2013-05-05 21:07:07 +01:00
parent e2bab9f22b
commit c769e71c72
4 changed files with 22 additions and 17 deletions

View File

@ -67,13 +67,13 @@ function create()
end
if misn_type == "Cargo" then
misn_setDesc(string.format(misn_desc[1], planet, system, carg_mass, carg_type))
misn.setDesc(string.format(misn_desc[1], planet, system, carg_mass, carg_type))
reward = misn_dist * carg_mass * (250+rnd.int(150)) +
carg_mass * (150+rnd.int(75)) +
rnd.int(1500)
elseif misn_type == "Rush" then
misn_time = time.get() + time.units(2) +
rnd.int(time.units(2), time.units(4)) * misn_dest
rnd.int(time.units(2), time.units(4)) * misn_dist
misn.setDesc(string.format(misn_desc[2], planet, system,
carg_mass, carg_type, time.str(misn_time),
time.str(misn_time), time.str(misn_time-time.get())))

View File

@ -1,5 +1,4 @@
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
#include "hook.h"
@ -67,7 +66,7 @@ static int misn_setReward(lua_State* L);
static int misn_factions(lua_State* L);
static int misn_accept(lua_State* L);
static int misn_finish(lua_State* L);
static const luaL_Reg misn_methods[] = {
static const luaL_reg misn_methods[] = {
{ "setTitle", misn_setTitle },
{ "setDesc", misn_setDesc },
{ "setReward", misn_setReward },
@ -93,7 +92,7 @@ static int space_getPlanet(lua_State* L);
static int space_getSystem(lua_State* L);
static int space_landName(lua_State* L);
static int space_jumpDist(lua_State* L);
static const luaL_Reg space_methods[] = {
static const luaL_reg space_methods[] = {
{ "getPlanet", space_getPlanet },
{ "getSystem", space_getSystem },
{ "landName", space_landName },
@ -118,7 +117,7 @@ static int player_addCargo(lua_State* L);
static int player_rmCargo(lua_State* L);
static int player_pay(lua_State* L);
static int player_msg(lua_State* L);
static const luaL_Reg player_methods[] = {
static const luaL_reg player_methods[] = {
{ "freeCargo", player_freeSpace },
{ "addCargo", player_addCargo },
{ "rmCargo", player_rmCargo },
@ -129,7 +128,7 @@ static const luaL_Reg player_methods[] = {
// RND.
static int rnd_int(lua_State*L);
static const luaL_Reg rnd_methods[] = {
static const luaL_reg rnd_methods[] = {
{ "int", rnd_int },
{ 0, 0 }
};
@ -138,7 +137,7 @@ static const luaL_Reg rnd_methods[] = {
static int tk_msg(lua_State* L);
static int tk_yesno(lua_State* L);
static int tk_input(lua_State* L);
static const luaL_Reg tk_methods[] = {
static const luaL_reg tk_methods[] = {
{ "msg", tk_msg },
{ "yesno", tk_yesno },
{ "input", tk_input },
@ -150,7 +149,7 @@ static int hook_land(lua_State* L);
static int hook_takeoff(lua_State* L);
static int hook_time(lua_State* L);
static int hook_pilotDeath(lua_State* L);
static const luaL_Reg hook_methods[] = {
static const luaL_reg hook_methods[] = {
{ "land", hook_land },
{ "takeoff", hook_takeoff },
{ "time", hook_time },
@ -167,8 +166,8 @@ int misn_loadLibs(lua_State* L) {
luaL_register(L, "time", time_methods);
luaL_register(L, "player", player_methods);
luaL_register(L, "rnd", rnd_methods);
luaL_register(L, "hook", hook_methods);
luaL_register(L, "tk", tk_methods);
luaL_register(L, "hook", hook_methods);
return 0;
}
@ -178,6 +177,7 @@ int misn_run(Mission* misn, char* func) {
char* err;
cur_mission = misn;
misn_delete = 0;
lua_getglobal(misn->L, func);
if((ret = lua_pcall(misn->L, 0, 0, 0))) {
@ -252,6 +252,7 @@ static int misn_factions(lua_State* L) {
dat = cur_mission->data;
// We'll push all the factions in table form.
lua_newtable(L);
for(i = 0; i < dat->avail.nfactions; i++) {
lua_pushnumber(L, i+1); // Index, starts with 1.
@ -471,7 +472,7 @@ static int space_getPlanet(lua_State* L) {
i = lua_tonumber(L, -1);
planets = space_getFactionPlanet(&nplanets, &i, 1);
}
else if(lua_isstring(L, 1)) {
else if(lua_isstring(L, -1)) {
i = faction_get((char*) lua_tostring(L, -1));
planets = space_getFactionPlanet(&nplanets, &i, 1);
}
@ -718,7 +719,8 @@ static int hook_generic(lua_State* L, char* stack) {
char* func;
MIN_ARGS(1);
// Make sure mission is a player mission.
for(i = 0; i < MISSION_MAX; i++)
if(player_missions[i].id == cur_mission->id)
break;

View File

@ -82,6 +82,7 @@ static int mission_init(Mission* mission, MissionData* misn) {
luaopen_string(mission->L); // string.format can be very useful.
misn_loadLibs(mission->L); // Load our custom libraries.
// Load the file.
buf = pack_readfile(DATA, misn->lua, &bufsize);
if(luaL_dobuffer(mission->L, buf, bufsize, misn->lua) != 0) {
ERR("Error loading mission file: %s", misn->lua);
@ -263,7 +264,7 @@ Mission* missions_computer(int* n, int faction, char* planet, char* system) {
// Return location based on string.
static int mission_location(char* loc) {
if(strcmp(loc, "None")==0) return MIS_AVAIL_NONE;
if(strcmp(loc, "None")==0) return MIS_AVAIL_NONE;
else if(strcmp(loc, "Computer")==0) return MIS_AVAIL_COMPUTER;
else if(strcmp(loc, "Bar")==0) return MIS_AVAIL_BAR;
else if(strcmp(loc, "Outfit")==0) return MIS_AVAIL_OUTFIT;
@ -301,7 +302,7 @@ static MissionData* mission_parse(const xmlNodePtr parent) {
do {
if(xml_isNode(cur, "unique"))
mis_setFlag(tmp, MISSION_UNIQUE);
} while((cur = cur->next));
} while(xml_nextNode(cur));
}
else if(xml_isNode(node, "avail")) { // Mission availability.
cur = node->children;
@ -328,9 +329,9 @@ static MissionData* mission_parse(const xmlNodePtr parent) {
}
else if(xml_isNode(cur, "req"))
tmp->avail.req = strdup(xml_get(cur));
} while((cur = cur->next));
} while(xml_nextNode(cur));
}
} while((node = node->next));
} while(xml_nextNode(node));
#define MELEMENT(o,s) \
if(o) WARN("Mission '%s' missing/invalid '"s"' element", tmp->name)
MELEMENT(tmp->lua==NULL, "lua");
@ -371,7 +372,7 @@ int missions_load(void) {
memcpy(mission_stack+mission_nstack-1, tmp, sizeof(MissionData));
free(tmp);
}
} while((node = node->next));
} while(xml_nextNode(node));
xmlFreeDoc(doc);
free(buf);

View File

@ -1016,6 +1016,8 @@ void space_exit(void) {
int i,j;
// Free the names.
//if(planetname_stack) free(planetname_stack);
//if(systemname_stack) free(systemname_stack);
if(planetname_stack) {
free(planetname_stack);
planetname_stack = NULL;