From 597091c929189d27c6f0e700f7257969fb76cbcd Mon Sep 17 00:00:00 2001 From: Allanis Date: Wed, 15 Jan 2014 01:11:10 +0000 Subject: [PATCH] [Change] Fetched part of land.c stuff inline with new toolkit changes. --- src/land.c | 159 +++++++++++++++++++++++------------------------------ 1 file changed, 69 insertions(+), 90 deletions(-) diff --git a/src/land.c b/src/land.c index f52fd67..5123bf9 100644 --- a/src/land.c +++ b/src/land.c @@ -61,6 +61,7 @@ static unsigned int land_visited = 0; /* Land variables. */ int landed = 0; +static unsigned int land_wid = 0; /**< Land window ID. */ Planet* land_planet = NULL; static glTexture* gfx_exterior = NULL; @@ -71,101 +72,90 @@ static int mission_ncomputer = 0; /* Player stuff. */ extern int hyperspace_target; -/* Window stuff. */ -static int land_wid = 0; /* Primary land window. */ -/* For the second opened land window */ -static int secondary_wid = 0; -static int terciary_wid = 0; /* For fancy things like news, your ship etc.. */ - /* Commodity excahnge. */ static void commodity_exchange_open(void); -static void commodity_exchange_close(char* str); -static void commodity_update(char* str); -static void commodity_buy(char* str); -static void commodity_sell(char* str); +static void commodity_update(unsigned int wid, char* str); +static void commodity_buy(unsigned int wid, char* str); +static void commodity_sell(unsigned int wid, char* str); /* Outfits. */ static void outfits_open(void); -static void outfits_close(char* str); -static void outfits_update(char* str); +static void outfits_update(unsigned int wid, char* str); static int outfit_canBuy(Outfit* outfit, int q, int errmsg); -static void outfits_buy(char* str); +static void outfits_buy(unsigned int wid, char* str); static int outfit_canSell(Outfit* outfit, int q, int errmsg); -static void outfits_sell(char* str); +static void outfits_sell(unsigned int wid, char* str); static int outfits_getMod(void); static void outfits_renderMod(double bx, double by, double w, double h); /* Shipyard. */ static void shipyard_open(void); -static void shipyard_close(char* str); -static void shipyard_update(char* str); -static void shipyard_info(char* str); -static void shipyard_buy(char* str); +static void shipyard_update(unsigned int wid, char* str); +static void shipyard_info(unsigned int wid, char* str); +static void shipyard_buy(unsigned int wid, char* str); /* Your ship. */ -static void shipyard_yours_open(char* str); -static void shipyard_yours_close(char* str); -static void shipyard_yoursUpdate(char* str); -static void shipyard_yoursChange(char* str); -static void shipyard_yoursSell(char* str); -static void shipyard_yoursTransport(char* str); +static void shipyard_yours_open(unsigned int wid, char* str); +static void shipyard_yoursUpdate(unsigned int wid, char* str); +static void shipyard_yoursChange(unsigned int wid, char* str); +static void shipyard_yoursSell(unsigned int wid, char* str); +static void shipyard_yoursTransport(unsigned int wid, char* str); static int shipyard_yoursTransportPrice(char* shipname); /* Spaceport bar. */ static void spaceport_bar_open(void); -static void spaceport_bar_close(char* str); /* News. */ -static void news_open(void); -static void news_close(char* str); +static void news_open(unsigned int parent, char* str); /* Mission computer. */ static void misn_open(void); -static void misn_close(char* str); -static void misn_accept(char* str); -static void misn_genList(int first); -static void misn_update(char* str); +static void misn_accept(unsigned int wid, char* str); +static void misn_genList(unsigned int wid, int first); +static void misn_update(unsigned int wid, char* str); /* Refuel. */ static int refuel_price(void); -static void spaceport_refuel(char* str); +static void spaceport_refuel(unsigned int wid, char* str); /* The local market. */ static void commodity_exchange_open(void) { int i; char** goods; - secondary_wid = window_create("Commodity Exchange", -1, -1, + unsigned int wid; + + wid = window_create("Commodity Exchange", -1, -1, COMMODITY_WIDTH, COMMODITY_HEIGHT); - window_addButton(secondary_wid, -20, 20, + window_addButton(wid, -20, 20, BUTTON_WIDTH, BUTTON_HEIGHT, "btnCommodityClose", "Close", commodity_exchange_close); - window_addButton(secondary_wid, -40-((BUTTON_WIDTH-20)/2), 20*2+BUTTON_HEIGHT, + window_addButton(wid, -40-((BUTTON_WIDTH-20)/2), 20*2+BUTTON_HEIGHT, (BUTTON_WIDTH-20)/2, BUTTON_HEIGHT, "btnCommodityBuy", "Buy", commodity_buy); - window_addButton(secondary_wid, -20, 20*2+BUTTON_HEIGHT, + window_addButton(wid, -20, 20*2+BUTTON_HEIGHT, (BUTTON_WIDTH-20)/2, BUTTON_HEIGHT, "btnCommoditySell", "Sell", commodity_sell); - window_addText(secondary_wid, -20, -40, BUTTON_WIDTH, 60, 0, + window_addText(wid, -20, -40, BUTTON_WIDTH, 60, 0, "txtSInfo", &gl_smallFont, &cDConsole, "You have:\n" "Market price:\n" "\n" "Free Space:\n"); - window_addText(secondary_wid, -20, -40, BUTTON_WIDTH/2, 60, 0, + window_addText(wid, -20, -40, BUTTON_WIDTH/2, 60, 0, "txtDInfo", &gl_smallFont, &cBlack, NULL); - window_addText(secondary_wid, -40, -120, BUTTON_WIDTH-20, + window_addText(wid, -40, -120, BUTTON_WIDTH-20, BUTTON_WIDTH, 0, "txtDesc", &gl_smallFont, &cBlack, NULL); goods = malloc(sizeof(char*)*land_planet->ncommodities); for(i = 0; i < land_planet->ncommodities; i++) goods[i] = strdup(land_planet->commodities[i]->name); - window_addList(secondary_wid, 20, -40, + window_addList(wid, 20, -40, COMMODITY_WIDTH-BUTTON_WIDTH-60, COMMODITY_HEIGHT-80-BUTTON_HEIGHT, "lstGoods", goods, land_planet->ncommodities, 0, commodity_update); /* Update. */ - commodity_update(NULL); + commodity_update(wid, NULL); /* Check commodity exchange missions. */ if(!has_visited(VISITED_COMMODITY)) { @@ -175,19 +165,13 @@ static void commodity_exchange_open(void) { } } -static void commodity_exchange_close(char* str) { - if(strcmp(str, "btnCommodityClose")==0) - window_destroy(secondary_wid); - secondary_wid = 0; -} - -static void commodity_update(char* str) { +static void commodity_update(unsigned int wid, char* str) { (void)str; char buf[128]; char* comname; Commodity* com; - comname = toolkit_getList(secondary_wid, "lstGoods"); + comname = toolkit_getList(wid, "lstGoods"); com = commodity_get(comname); snprintf(buf, 128, @@ -199,11 +183,11 @@ static void commodity_update(char* str) { com->medium, pilot_cargoFree(player)); - window_modifyText(secondary_wid, "txtDInfo", buf); - window_modifyText(secondary_wid, "txtDesc", com->description); + window_modifyText(wid, "txtDInfo", buf); + window_modifyText(wid, "txtDesc", com->description); } -static void commodity_buy(char* str) { +static void commodity_buy(unsigned int wid, char* str) { (void)str; char* comname; Commodity* com; @@ -211,7 +195,7 @@ static void commodity_buy(char* str) { q = 10; - comname = toolkit_getList(secondary_wid, "lstGoods"); + comname = toolkit_getList(wid, "lstGoods"); com = commodity_get(comname); if(player->credits <= q * com->medium) { @@ -225,22 +209,22 @@ static void commodity_buy(char* str) { q = pilot_addCargo(player, com, q); player->credits -= q * com->medium; - commodity_update(NULL); + commodity_update(wid, NULL); } -static void commodity_sell(char* str) { +static void commodity_sell(unsigned int wid, char* str) { (void)str; char* comname; Commodity* com; int q; q = 10; - comname = toolkit_getList(secondary_wid, "lstGoods"); + comname = toolkit_getList(wid, "lstGoods"); com = commodity_get(comname); q = pilot_rmCargo(player, com, q); player->credits += q * com->medium; - commodity_update(NULL); + commodity_update(wid, NULL); } static void outfits_open(void) { @@ -250,38 +234,39 @@ static void outfits_open(void) { glTexture** toutfits; int noutfits; char buf[128]; + unsigned int wid; /* Create window. */ snprintf(buf, 128, "%s - Outfits", land_planet->name); - secondary_wid = window_create(buf, -1, -1, - OUTFITS_WIDTH, OUTFITS_HEIGHT); + wid = window_create(buf, -1, -1, + OUTFITS_WIDTH, OUTFITS_HEIGHT); /* Will allow buying from keyboard. */ - window_setAccept(secondary_wid, outfits_buy); + window_setAccept(wid, outfits_buy); /* Buttons. */ - window_addButton(secondary_wid, -20, 20, + window_addButton(wid, -20, 20, BUTTON_WIDTH, BUTTON_HEIGHT, "btnCloseOutfits", "Close", outfits_close); - window_addButton(secondary_wid, -40-BUTTON_WIDTH, 40+BUTTON_HEIGHT, + window_addButton(wid, -40-BUTTON_WIDTH, 40+BUTTON_HEIGHT, BUTTON_WIDTH, BUTTON_HEIGHT, "btnBuyOutfit", "Buy", outfits_buy); - window_addButton(secondary_wid, -40-BUTTON_WIDTH, 20, + window_addButton(wid, -40-BUTTON_WIDTH, 20, BUTTON_WIDTH, BUTTON_HEIGHT, "btnSellOutfit", "Sell", outfits_sell); /* Fancy 128x128 image. */ - window_addRect(secondary_wid, -20, -50, 128, 128, "rctImage", &cBlack, 0); - window_addImage(secondary_wid, -20-128, -50-128, "imgOutfit", NULL, 1); + window_addRect(wid, -20, -50, 128, 128, "rctImage", &cBlack, 0); + window_addImage(wid, -20-128, -50-128, "imgOutfit", NULL, 1); - window_addCust(secondary_wid, -40-BUTTON_WIDTH, 60+2*BUTTON_HEIGHT, + window_addCust(wid, -40-BUTTON_WIDTH, 60+2*BUTTON_HEIGHT, BUTTON_WIDTH, BUTTON_HEIGHT, "cstMod", 0, outfits_renderMod, NULL); /* The descriptive text. */ - window_addText(secondary_wid, 40+300+20, -60, + window_addText(wid, 40+300+20, -60, 80, 96, 0, "txtSDesc", &gl_smallFont, &cDConsole, "Name:\n" "Type:\n" @@ -293,10 +278,10 @@ static void outfits_open(void) { "Price:\n" "Money:\n"); - window_addText(secondary_wid, 40+300+40+60, -60, + window_addText(wid, 40+300+40+60, -60, 250, 96, 0, "txtDDesc", &gl_smallFont, &cBlack, NULL); - window_addText(secondary_wid, 20+300+40, -220, + window_addText(wid, 20+300+40, -220, OUTFITS_WIDTH-400, 180, 0, "txtDescription", &gl_smallFont, NULL, NULL); @@ -320,12 +305,12 @@ static void outfits_open(void) { free(outfits); } - window_addImageArray(secondary_wid, 20, 40, + window_addImageArray(wid, 20, 40, 310, OUTFITS_HEIGHT-80, "iarOutfits", 64, 64, toutfits, soutfits, noutfits, outfits_update); /* Write the outfits stuff. */ - outfits_update(NULL); + outfits_update(wid, NULL); if(!has_visited(VISITED_OUTFITS)) { /* @todo mission check. */ @@ -333,23 +318,17 @@ static void outfits_open(void) { } } -static void outfits_close(char* str) { - if(strcmp(str, "btnCloseOutfits")==0) - window_destroy(secondary_wid); - secondary_wid = 0; -} - -static void outfits_update(char* str) { +static void outfits_update(unsigned int wid, char* str) { (void)str; char* outfitname; Outfit* outfit; char buf[128], buf2[16], buf3[16]; - outfitname = toolkit_getList(secondary_wid, "iarOutfits"); + outfitname = toolkit_getList(wid, "iarOutfits"); if(strcmp(outfitname, "None")==0) { /* No outfits. */ - window_modifyImage(secondary_wid, "imgOutfit", NULL); - window_disableButton(secondary_wid, "btnBuyOutfit"); - window_disableButton(secondary_wid, "btnSellOutfit"); + window_modifyImage(wid, "imgOutfit", NULL); + window_disableButton(wid, "btnBuyOutfit"); + window_disableButton(wid, "btnSellOutfit"); snprintf(buf, 128, "None\n" "NA\n" @@ -361,27 +340,27 @@ static void outfits_update(char* str) { "NA\n" "NA\n", pilot_freeSpace(player)); - window_modifyText(secondary_wid, "txtDDesc", buf); + window_modifyText(wid, "txtDDesc", buf); return; } outfit = outfit_get(outfitname); - window_modifyImage(secondary_wid, "imgOutfit", outfit->gfx_store); + window_modifyImage(wid, "imgOutfit", outfit->gfx_store); if(outfit_canBuy(outfit, 1, 0) > 0) - window_enableButton(secondary_wid, "btnBuyOutfit"); + window_enableButton(wid, "btnBuyOutfit"); else - window_disableButton(secondary_wid, "btnBuyOutfit"); + window_disableButton(wid, "btnBuyOutfit"); /* Gray out sell button. */ if(outfit_canSell(outfit, 1, 0) > 0) - window_enableButton(secondary_wid, "btnSellOutfit"); + window_enableButton(wid, "btnSellOutfit"); else - window_disableButton(secondary_wid, "btnSellOutfit"); + window_disableButton(wid, "btnSellOutfit"); /* New text. */ - window_modifyText(secondary_wid, "txtDescription", outfit->description); + window_modifyText(wid, "txtDescription", outfit->description); credits2str(buf2, outfit->price, 2); credits2str(buf3, player->credits, 2); snprintf(buf, 128, @@ -402,7 +381,7 @@ static void outfits_update(char* str) { buf2, buf3); - window_modifyText(secondary_wid, "txtDDesc", buf); + window_modifyText(wid, "txtDDesc", buf); } static int outfit_canBuy(Outfit* outfit, int q, int errmsg) {