From 62bd81ae200b9195b6f5147a2654e897db8f4036 Mon Sep 17 00:00:00 2001 From: Allanis Date: Thu, 16 Jan 2014 22:05:08 +0000 Subject: [PATCH] [Change] Finished bringing land dialogue stuff inline with new toolkit changes. --- src/land.c | 302 ++++++++++++++++++++++++----------------------------- 1 file changed, 139 insertions(+), 163 deletions(-) diff --git a/src/land.c b/src/land.c index 5123bf9..41ce996 100644 --- a/src/land.c +++ b/src/land.c @@ -122,7 +122,7 @@ static void commodity_exchange_open(void) { window_addButton(wid, -20, 20, BUTTON_WIDTH, BUTTON_HEIGHT, "btnCommodityClose", - "Close", commodity_exchange_close); + "Close", window_close); window_addButton(wid, -40-((BUTTON_WIDTH-20)/2), 20*2+BUTTON_HEIGHT, (BUTTON_WIDTH-20)/2, BUTTON_HEIGHT, "btnCommodityBuy", @@ -247,7 +247,7 @@ static void outfits_open(void) { /* Buttons. */ window_addButton(wid, -20, 20, BUTTON_WIDTH, BUTTON_HEIGHT, "btnCloseOutfits", - "Close", outfits_close); + "Close", window_close); window_addButton(wid, -40-BUTTON_WIDTH, 40+BUTTON_HEIGHT, BUTTON_WIDTH, BUTTON_HEIGHT, "btnBuyOutfit", @@ -429,13 +429,13 @@ static int outfit_canBuy(Outfit* outfit, int q, int errmsg) { return 1; } -static void outfits_buy(char* str) { +static void outfits_buy(unsigned int wid, char* str) { (void)str; char* outfitname; Outfit* outfit; int q; - outfitname = toolkit_getList(secondary_wid, "iarOutfits"); + outfitname = toolkit_getList(wid, "iarOutfits"); outfit = outfit_get(outfitname); q = outfits_getMod(); @@ -445,7 +445,7 @@ static void outfits_buy(char* str) { player->credits -= outfit->price * pilot_addOutfit(player, outfit, MIN(q, outfit->max)); - outfits_update(NULL); + outfits_update(wid, NULL); } static int outfit_canSell(Outfit* outfit, int q, int errmsg) { @@ -470,13 +470,13 @@ static int outfit_canSell(Outfit* outfit, int q, int errmsg) { return 1; } -static void outfits_sell(char* str) { +static void outfits_sell(unsigned int wid, char* str) { (void)str; char* outfitname; Outfit* outfit; int q; - outfitname = toolkit_getList(secondary_wid, "iarOutfits"); + outfitname = toolkit_getList(wid, "iarOutfits"); outfit = outfit_get(outfitname); q = outfits_getMod(); @@ -485,7 +485,7 @@ static void outfits_sell(char* str) { if(outfit_canSell(outfit, q, 1) == 0) return; player->credits += outfit->price * pilot_rmOutfit(player, outfit, q); - outfits_update(NULL); + outfits_update(wid, NULL); } /* Return the current modifier status. */ @@ -523,37 +523,38 @@ static void shipyard_open(void) { glTexture** tships; int nships; char buf[128]; + unsigned int wid; /* Window creation. */ snprintf(buf, 128, "%s - Shipyard", land_planet->name); - secondary_wid = window_create(buf, - -1, -1, SHIPYARD_WIDTH, SHIPYARD_HEIGHT); + wid = window_create(buf, + -1, -1, SHIPYARD_WIDTH, SHIPYARD_HEIGHT); /* Buttons. */ - window_addButton(secondary_wid, -20, 20, + window_addButton(wid, -20, 20, BUTTON_WIDTH, BUTTON_HEIGHT, "btnCloseShipyard", - "Close", shipyard_close); + "Close", window_close); - window_addButton(secondary_wid, -20, 40+BUTTON_HEIGHT, + window_addButton(wid, -20, 40+BUTTON_HEIGHT, BUTTON_WIDTH, BUTTON_HEIGHT, "btnYourShips", "Your Ships", shipyard_yours_open); - window_addButton(secondary_wid, -40-BUTTON_WIDTH, 20, + window_addButton(wid, -40-BUTTON_WIDTH, 20, BUTTON_WIDTH, BUTTON_HEIGHT, "btnBuyShip", "Buy", shipyard_buy); - window_addButton(secondary_wid, -40-BUTTON_WIDTH, 40+BUTTON_HEIGHT, + window_addButton(wid, -40-BUTTON_WIDTH, 40+BUTTON_HEIGHT, BUTTON_WIDTH, BUTTON_HEIGHT, "btnInfoShip", "Info", shipyard_info); /* Target gfx. */ - window_addRect(secondary_wid, -40, -50, + window_addRect(wid, -40, -50, 128, 96, "rctTarget", &cBlack, 0); - window_addImage(secondary_wid, -40-128, -50-96, + window_addImage(wid, -40-128, -50-96, "imgTarget", NULL, 1); /* Text. */ - window_addText(secondary_wid, 40+300+40, -55, + window_addText(wid, 40+300+40, -55, 80, 96, 0, "txtSDesc", &gl_smallFont, &cDConsole, "Name:\n" "Class:\n" @@ -562,11 +563,11 @@ static void shipyard_open(void) { "Price:\n" "Money:\n"); - window_addText(secondary_wid, 40+300+40+80, -55, + window_addText(wid, 40+300+40+80, -55, 130, 96, 0, "txtDDesc", &gl_smallFont, &cBlack, NULL); - window_addText(secondary_wid, 20+300+40, -160, + window_addText(wid, 20+300+40, -160, SHIPYARD_WIDTH-300, 200, 0, "txtDescription", &gl_smallFont, NULL, NULL); @@ -588,12 +589,12 @@ static void shipyard_open(void) { } free(ships); } - window_addImageArray(secondary_wid, 20, 40, + window_addImageArray(wid, 20, 40, 310, SHIPYARD_HEIGHT-80, "iarShipyard", 64./96.*128., 64., tships, sships, nships, shipyard_update); /* Write the shipyard stuff. */ - shipyard_update(NULL); + shipyard_update(wid, NULL); if(!has_visited(VISITED_SHIPYARD)) { /* @todo mission check. */ @@ -601,25 +602,19 @@ static void shipyard_open(void) { } } -static void shipyard_close(char* str) { - if(strcmp(str, "btnCloseShipyard")==0) - window_destroy(secondary_wid); - secondary_wid = 0; -} - -static void shipyard_update(char* str) { +static void shipyard_update(unsigned int wid, char* str) { (void)str; char* shipname; Ship* ship; char buf[80], buf2[16], buf3[16]; - shipname = toolkit_getList(secondary_wid, "iarShipyard"); + shipname = toolkit_getList(wid, "iarShipyard"); /* No ships. */ if(strcmp(shipname, "None")==0) { - window_modifyImage(secondary_wid, "imgTarget", NULL); - window_disableButton(secondary_wid, "btnBuyShip"); - window_disableButton(secondary_wid, "btnInfoShip"); + window_modifyImage(wid, "imgTarget", NULL); + window_disableButton(wid, "btnBuyShip"); + window_disableButton(wid, "btnInfoShip"); snprintf(buf, 80, "None\n" "NA\n" @@ -627,17 +622,17 @@ static void shipyard_update(char* str) { "\n" "NA\n" "NA\n"); - window_modifyText(secondary_wid, "txtDDesc", buf); + window_modifyText(wid, "txtDDesc", buf); return; } ship = ship_get(shipname); - if(player_nships()==0) window_disableButton(secondary_wid, "btnYourShips"); - else window_enableButton(secondary_wid, "btnYourShips"); + if(player_nships()==0) window_disableButton(wid, "btnYourShips"); + else window_enableButton(wid, "btnYourShips"); - window_modifyImage(secondary_wid, "imgTarget", ship->gfx_target); - window_modifyText(secondary_wid, "txtDescription", ship->description); + window_modifyImage(wid, "imgTarget", ship->gfx_target); + window_modifyText(wid, "txtDescription", ship->description); credits2str(buf2, ship->price, 2); credits2str(buf3, player->credits, 2); @@ -654,28 +649,27 @@ static void shipyard_update(char* str) { buf2, buf3); - window_modifyText(secondary_wid, "txtDDesc", buf); + window_modifyText(wid, "txtDDesc", buf); if(ship->price > player->credits) - window_disableButton(secondary_wid, "btnBuyShip"); - else window_enableButton(secondary_wid, "btnBuyShip"); - + window_disableButton(wid, "btnBuyShip"); + else window_enableButton(wid, "btnBuyShip"); } -static void shipyard_info(char* str) { +static void shipyard_info(unsigned int wid, char* str) { (void)str; char* shipname; - shipname = toolkit_getList(secondary_wid, "iarShipyard"); - ship_view(shipname); + shipname = toolkit_getList(wid, "iarShipyard"); + ship_view(0, shipname); } -static void shipyard_buy(char* str) { +static void shipyard_buy(unsigned int wid, char* str) { (void)str; char* shipname, buf[16]; Ship* ship; - shipname = toolkit_getList(secondary_wid, "iarShipyard"); + shipname = toolkit_getList(wid, "iarShipyard"); ship = ship_get(shipname); if(pilot_cargoUsed(player) > ship->cap_cargo) { @@ -696,45 +690,47 @@ static void shipyard_buy(char* str) { player->credits -= ship->price; /* Auch! Paying is hard! */ - shipyard_update(NULL); + shipyard_update(wid, NULL); } -static void shipyard_yours_open(char* str) { +static void shipyard_yours_open(unsigned int parent, char* str) { (void)str; + (void)parent; char** sships; glTexture** tships; int nships; + unsigned int wid; /* Create window. */ - terciary_wid = window_create("Your Ships", + wid = window_create("Your Ships", -1, -1, SHIPYARD_WIDTH, SHIPYARD_HEIGHT); /* Buttons. */ - window_addButton(terciary_wid, -20, 20, + window_addButton(wid, -20, 20, BUTTON_WIDTH, BUTTON_HEIGHT, "btnCloseYourShips", - "Shipyard", shipyard_yours_close); + "Shipyard", window_close); - window_addButton(terciary_wid, -40-BUTTON_WIDTH, 20, + window_addButton(wid, -40-BUTTON_WIDTH, 20, BUTTON_WIDTH, BUTTON_HEIGHT, "btnChangeShip", "Change Ship", shipyard_yoursChange); - window_addButton(terciary_wid, -40-BUTTON_WIDTH, 40+BUTTON_HEIGHT, + window_addButton(wid, -40-BUTTON_WIDTH, 40+BUTTON_HEIGHT, BUTTON_WIDTH, BUTTON_HEIGHT, "btnTransportShip", "Transport Ship", shipyard_yoursTransport); - window_addButton(terciary_wid, -20, 40+BUTTON_HEIGHT, + window_addButton(wid, -20, 40+BUTTON_HEIGHT, BUTTON_WIDTH, BUTTON_HEIGHT, "btnSellShip", "Sell Ship", shipyard_yoursSell); /* Image. */ - window_addRect(terciary_wid, -40, -50, + window_addRect(wid, -40, -50, 128, 96, "rctTarget", &cBlack, 0); - window_addImage(terciary_wid, -40-128, -50-96, + window_addImage(wid, -40-128, -50-96, "imgTarget", NULL, 1); /* Text. */ - window_addText(terciary_wid, 40+300+40, -55, + window_addText(wid, 40+300+40, -55, 100, 96, 0, "txtSDesc", &gl_smallFont, &cDConsole, "Name:\n" "Ship:\n" @@ -747,14 +743,14 @@ static void shipyard_yours_open(char* str) { "Transportation\n" "Sell price\n"); - window_addText(terciary_wid, 40+300+40+100, -55, + window_addText(wid, 40+300+40+100, -55, 130, 96, 0, "txtDDesc", &gl_smallFont, &cBlack, NULL); - window_addText(terciary_wid, 40+300+40, -215, + window_addText(wid, 40+300+40, -215, 100, 20, 0, "txtSOutfits", &gl_smallFont, &cDConsole, "Outfits:\n"); - window_addText(terciary_wid, 40+300+40, -215-gl_smallFont.h-5, + window_addText(wid, 40+300+40, -215-gl_smallFont.h-5, SHIPYARD_WIDTH-40-300-40-20, 200, 0, "txtDOutfits", &gl_smallFont, &cBlack, NULL); @@ -763,20 +759,14 @@ static void shipyard_yours_open(char* str) { sships = malloc(sizeof(char*)*nships); tships = malloc(sizeof(glTexture*)*nships); player_ships(sships, tships); - window_addImageArray(terciary_wid, 20, 40, + window_addImageArray(wid, 20, 40, 310, SHIPYARD_HEIGHT-80, "lstYourShips", 64./96.*128., 64., tships, sships, nships, shipyard_yoursUpdate); - shipyard_yoursUpdate(NULL); + shipyard_yoursUpdate(wid, NULL); } -static void shipyard_yours_close(char* str) { - (void)str; - window_destroy(terciary_wid); - terciary_wid = 0; -} - -static void shipyard_yoursUpdate(char* str) { +static void shipyard_yoursUpdate(unsigned int wid, char* str) { (void)str; char buf[256], buf2[16], buf3[16], *buf4; char* shipname; @@ -784,12 +774,12 @@ static void shipyard_yoursUpdate(char* str) { char* loc; int price; - shipname = toolkit_getList(terciary_wid, "lstYourShips"); + shipname = toolkit_getList(wid, "lstYourShips"); if(strcmp(shipname, "None")==0) { /* No ships. */ - window_disableButton(terciary_wid, "btnChangeShip"); - window_disableButton(terciary_wid, "btnTransportShip"); - window_disableButton(terciary_wid, "btnSellShip"); + window_disableButton(wid, "btnChangeShip"); + window_disableButton(wid, "btnTransportShip"); + window_disableButton(wid, "btnSellShip"); return; } ship = player_getShip(shipname); @@ -797,7 +787,7 @@ static void shipyard_yoursUpdate(char* str) { price = shipyard_yoursTransportPrice(shipname); /* Update the image. */ - window_modifyImage(terciary_wid, "imgTarget", ship->ship->gfx_target); + window_modifyImage(wid, "imgTarget", ship->ship->gfx_target); /* Update text. */ credits2str(buf2, price, 2); /* Transport. */ @@ -823,33 +813,33 @@ static void shipyard_yoursUpdate(char* str) { buf2, buf3); - window_modifyText(terciary_wid, "txtDDesc", buf); + window_modifyText(wid, "txtDDesc", buf); buf4 = pilot_getOutfits(ship); - window_modifyText(terciary_wid, "txtDOutfits", buf4); + window_modifyText(wid, "txtDOutfits", buf4); free(buf4); /* Button disabling. */ if(strcmp(land_planet->name, loc)) { /* Ship not here. */ - window_disableButton(terciary_wid, "btnChangeShip"); + window_disableButton(wid, "btnChangeShip"); if(price > player->credits) - window_disableButton(terciary_wid, "btnTransportShip"); - else window_enableButton(terciary_wid, "btnTransportShip"); + window_disableButton(wid, "btnTransportShip"); + else window_enableButton(wid, "btnTransportShip"); } else { - window_enableButton(terciary_wid, "btnChangeShip"); - window_disableButton(terciary_wid, "btnTransportShip"); + window_enableButton(wid, "btnChangeShip"); + window_disableButton(wid, "btnTransportShip"); } /* If ship is there you can always sell. */ - window_enableButton(terciary_wid, "btnSellShip"); + window_enableButton(wid, "btnSellShip"); } -static void shipyard_yoursChange(char* str) { +static void shipyard_yoursChange(unsigned int wid, char* str) { (void)str; char* shipname, *loc; Pilot* newship; - shipname = toolkit_getList(terciary_wid, "lstYourShips"); + shipname = toolkit_getList(wid, "lstYourShips"); newship = player_getShip(shipname); if(strcmp(shipname, "None")==0) { /* No ships. */ @@ -872,16 +862,16 @@ static void shipyard_yoursChange(char* str) { player_swapShip(shipname); /* Recreate the window. */ - shipyard_yours_close(NULL); - shipyard_yours_open(NULL); + window_destroy(wid); + shipyard_yours_open(0, NULL); } -static void shipyard_yoursSell(char* str) { +static void shipyard_yoursSell(unsigned int wid, char* str) { (void)str; char* shipname, buf[16]; int price; - shipname = toolkit_getList(terciary_wid, "lstYourShips"); + shipname = toolkit_getList(wid, "lstYourShips"); if(strcmp(shipname, "None")==0) { /* No ships. */ dialogue_alert("You can't sell nothing!"); return; @@ -904,16 +894,16 @@ static void shipyard_yoursSell(char* str) { shipname, buf); /* Recreate the window. */ - shipyard_yours_close(NULL); - shipyard_yours_open(NULL); + window_destroy(wid); + shipyard_yours_open(0, NULL); } -static void shipyard_yoursTransport(char* str) { +static void shipyard_yoursTransport(unsigned int wid, char* str) { (void)str; int price; char* shipname, buf[16]; - shipname = toolkit_getList(terciary_wid, "lstYourShips"); + shipname = toolkit_getList(wid, "lstYourShips"); if(strcmp(shipname, "None")==0) { /* No ships. */ dialogue_alert("You can't transport nothing here!"); return; @@ -938,7 +928,7 @@ static void shipyard_yoursTransport(char* str) { player_setLoc(shipname, land_planet->name); /* Update the window to reflect the change. */ - shipyard_yoursUpdate(NULL); + shipyard_yoursUpdate(wid, NULL); } static int shipyard_yoursTransportPrice(char* shipname) { @@ -958,16 +948,18 @@ static int shipyard_yoursTransportPrice(char* shipname) { /* Spaceport bar. */ static void spaceport_bar_open(void) { - secondary_wid = window_create("SpacePort Bar", -1, -1, BAR_WIDTH, BAR_HEIGHT); + unsigned int wid; - window_addButton(secondary_wid, -20, 20, BUTTON_WIDTH, BUTTON_HEIGHT, - "btnCloseBar", "Close", spaceport_bar_close); + wid = window_create("SpacePort Bar", -1, -1, BAR_WIDTH, BAR_HEIGHT); - window_addButton(secondary_wid, 20, 20, + window_addButton(wid, -20, 20, BUTTON_WIDTH, BUTTON_HEIGHT, + "btnCloseBar", "Close", window_close); + + window_addButton(wid, 20, 20, BUTTON_WIDTH, BUTTON_HEIGHT, "btnNews", - "News", (void(*)(char*))news_open); + "News", (void(*)(unsigned int,char*))news_open); - window_addText(secondary_wid, 20, -30, + window_addText(wid, 20, -30, BAR_WIDTH-40, BAR_HEIGHT - 40 - BUTTON_HEIGHT, 0, "txtDescription", &gl_smallFont, &cBlack, land_planet->bar_description); @@ -978,98 +970,86 @@ static void spaceport_bar_open(void) { } } -static void spaceport_bar_close(char* str) { - if(strcmp(str, "btnCloseBar")==0) - window_destroy(secondary_wid); - secondary_wid = 0; -} - /* Planet news reports. */ -static void news_open(void) { - terciary_wid = window_create("News Reports", - -1, -1, NEWS_WIDTH, NEWS_HEIGHT); +static void news_open(unsigned int parent, char* str) { + (void)parent; + (void)str; + unsigned int wid; - window_addButton(terciary_wid, -20, 20, + wid = window_create("News Reports", + -1, -1, NEWS_WIDTH, NEWS_HEIGHT); + + window_addButton(wid, -20, 20, BUTTON_WIDTH, BUTTON_HEIGHT, - "btnCloseNews", "Close", news_close); + "btnCloseNews", "Close", window_close); - window_addText(terciary_wid, 20, 20 + BUTTON_HEIGHT + 20, + window_addText(wid, 20, 20 + BUTTON_HEIGHT + 20, NEWS_WIDTH-40, NEWS_HEIGHT - 20 - BUTTON_HEIGHT - 20 - 20 -20, 0, "txtNews", &gl_smallFont, &cBlack, "News reporters report that they are on strike right now! D:"); } -static void news_close(char* str) { - if(strcmp(str, "btnCloseNews")==0) - window_destroy(terciary_wid); - terciary_wid = 0; -} - /* Mission computer, cos' missions rule! */ static void misn_open(void) { - secondary_wid = window_create("Mission Computer", + unsigned int wid; + + wid = window_create("Mission Computer", -1, -1, MISSION_WIDTH, MISSION_HEIGHT); /* Buttons. */ - window_addButton(secondary_wid, -20, 20, + window_addButton(wid, -20, 20, BUTTON_WIDTH, BUTTON_HEIGHT, "btnCloseMission", - "Close", misn_close); + "Close", window_close); - window_addButton(secondary_wid, -20, 40+BUTTON_HEIGHT, + window_addButton(wid, -20, 40+BUTTON_HEIGHT, BUTTON_WIDTH, BUTTON_HEIGHT, "btnAcceptMission", "Accept", misn_accept); /* Text. */ - window_addText(secondary_wid, 300+40, -60, + window_addText(wid, 300+40, -60, 300, 40, 0, "txtSReward", &gl_smallFont, &cDConsole, "Reward:"); - window_addText(secondary_wid, 300+100, -60, + window_addText(wid, 300+100, -60, 240, 40, 0, "txtReward", &gl_smallFont, &cBlack, NULL); - window_addText(secondary_wid, 300+40, -100, + window_addText(wid, 300+40, -100, 300, MISSION_HEIGHT - BUTTON_WIDTH - 120, 0, "txtDesc", &gl_smallFont, &cBlack, NULL); - misn_genList(1); + misn_genList(wid, 1); } -static void misn_close(char* str) { - if(strcmp(str, "btnCloseMission")==0) - window_destroy(secondary_wid); - secondary_wid = 0; -} - -static void misn_accept(char* str) { +static void misn_accept(unsigned int wid, char* str) { char* misn_name; Mission* misn; int pos; (void)str; - misn_name = toolkit_getList(secondary_wid, "lstMission"); + misn_name = toolkit_getList(wid, "lstMission"); if(strcmp(misn_name, "No Missions")==0) return; if(dialogue_YesNo("Accept Mission", "Are you sure you want to accept this mission?")) { - pos = toolkit_getListPos(secondary_wid, "lstMission"); + pos = toolkit_getListPos(wid, "lstMission"); misn = &mission_computer[pos]; if(mission_accept(misn)) { /* Success is accepting the mission. */ memmove(misn, &mission_computer[pos+1], sizeof(Mission) * (mission_ncomputer-pos-1)); mission_ncomputer--; - misn_genList(0); + misn_genList(wid, 0); } } } -static void misn_genList(int first) { +static void misn_genList(unsigned int wid, int first) { int i, j; char** misn_names; if(!first) - window_destroyWidget(secondary_wid, "lstMission"); + window_destroyWidget(wid, "lstMission"); /* List. */ if(mission_ncomputer != 0) { @@ -1087,32 +1067,32 @@ static void misn_genList(int first) { misn_names[0] = strdup("No Missions"); } - window_addList(secondary_wid, 20, -40, + window_addList(wid, 20, -40, 300, MISSION_HEIGHT-60, "lstMission", misn_names, j, 0, misn_update); - misn_update(NULL); + misn_update(wid, NULL); } -static void misn_update(char* str) { +static void misn_update(unsigned int wid, char* str) { char* active_misn; Mission* misn; (void)str; - active_misn = toolkit_getList(secondary_wid, "lstMission"); + active_misn = toolkit_getList(wid, "lstMission"); if(strcmp(active_misn, "No Missions")==0) { - window_modifyText(secondary_wid, "txtReward", "None"); - window_modifyText(secondary_wid, "txtDesc", + window_modifyText(wid, "txtReward", "None"); + window_modifyText(wid, "txtDesc", "There are no missions available here."); - window_disableButton(secondary_wid, "btnAcceptMission"); + window_disableButton(wid, "btnAcceptMission"); return; } - misn = &mission_computer[toolkit_getListPos(secondary_wid, "lstMission")]; - window_modifyText(secondary_wid, "txtReward", misn->reward); - window_modifyText(secondary_wid, "txtDesc", misn->desc); - window_enableButton(secondary_wid, "btnAcceptMission"); + misn = &mission_computer[toolkit_getListPos(wid, "lstMission")]; + window_modifyText(wid, "txtReward", misn->reward); + window_modifyText(wid, "txtDesc", misn->desc); + window_enableButton(wid, "btnAcceptMission"); } /* Return how much it will cost to refuel the player. */ @@ -1121,7 +1101,7 @@ static int refuel_price(void) { } /* Refuel the player. */ -static void spaceport_refuel(char* str) { +static void spaceport_refuel(unsigned int wid, char* str) { (void)str; if(player->credits < refuel_price()) { @@ -1132,7 +1112,7 @@ static void spaceport_refuel(char* str) { player->credits -= refuel_price(); player->fuel = player->fuel_max; - window_destroyWidget(land_wid, "btnRefuel"); + window_destroyWidget(wid, "btnRefuel"); } /* Land the player. */ @@ -1166,32 +1146,32 @@ void land(Planet* p) { "txtPlanetDesc", &gl_smallFont, &cBlack, p->description); /* Buttons. */ window_addButton(land_wid, -20, 20, BUTTON_WIDTH, BUTTON_HEIGHT, - "btnTakeoff", "Takeoff", (void(*)(char*))takeoff); + "btnTakeoff", "Takeoff", (void(*)(unsigned int,char*))takeoff); if(planet_hasService(land_planet, PLANET_SERVICE_COMMODITY)) window_addButton(land_wid, -20, 20 + BUTTON_HEIGHT + 20, BUTTON_WIDTH, BUTTON_HEIGHT, "btnCommodity", - "Commodity Exchange", (void(*)(char*))commodity_exchange_open); + "Commodity Exchange", (void(*)(unsigned int,char*))commodity_exchange_open); if(planet_hasService(land_planet, PLANET_SERVICE_SHIPYARD)) window_addButton(land_wid, -20 - BUTTON_WIDTH - 20, 20, BUTTON_WIDTH, BUTTON_HEIGHT, "btnShipyard", - "Shipyard", (void(*)(char*))shipyard_open); + "Shipyard", (void(*)(unsigned int,char*))shipyard_open); if(planet_hasService(land_planet, PLANET_SERVICE_OUTFITS)) window_addButton(land_wid, -20 - BUTTON_WIDTH - 20, 20 + BUTTON_HEIGHT + 20, BUTTON_WIDTH, BUTTON_HEIGHT, "btnOutfits", - "Outfits", (void(*)(char*))outfits_open); + "Outfits", (void(*)(unsigned int,char*))outfits_open); /* Third column. */ if(planet_hasService(land_planet, PLANET_SERVICE_BASIC)) { window_addButton(land_wid, 20, 20, BUTTON_WIDTH, BUTTON_HEIGHT, "btnNews", - "Mission Terminal", (void(*)(char*))misn_open); + "Mission Terminal", (void(*)(unsigned int,char*))misn_open); window_addButton(land_wid, 20, 20 + BUTTON_HEIGHT + 20, BUTTON_WIDTH, BUTTON_HEIGHT, "btnBar", - "Spaceport Bar", (void(*)(char*))spaceport_bar_open); + "Spaceport Bar", (void(*)(unsigned int,char*))spaceport_bar_open); if(player->fuel < player->fuel_max) { credits2str(cred, refuel_price(), 2); @@ -1284,8 +1264,6 @@ void takeoff(void) { } /** - * @fn void land_cleanup(void) - * * @brief Cleans up some land-related variables. */ void land_cleanup(void) { @@ -1294,11 +1272,9 @@ void land_cleanup(void) { landed = 0; land_visited = 0; - /* Clean up window. */ - if(land_wid != 0) { + /* Destroy window. */ + if(land_wid > 0) window_destroy(land_wid); - land_wid = 0; - } /* Clean up possible stray graphic. */ if(gfx_exterior != NULL) {