diff --git a/src/board.c b/src/board.c index 610c685..55484c6 100644 --- a/src/board.c +++ b/src/board.c @@ -98,7 +98,7 @@ static void board_stealCreds(char* str) { if(board_fail()) return; - player_credits += p->credits; + player->credits += p->credits; p->credits = 0; board_update(); // Update the lack of credits. player_message("You manage to steal the ship's Scred."); diff --git a/src/land.c b/src/land.c index 5b35653..51ea672 100644 --- a/src/land.c +++ b/src/land.c @@ -70,7 +70,7 @@ static void shipyard_yoursClose(char* str); static void shipyard_yoursUpdate(char* str); static void shipyard_yoursChange(char* str); static void shipyard_yoursTransport(char* str); -static char shipyard_yoursTransportPrice(char* shipname); +static int shipyard_yoursTransportPrice(char* shipname); // Spaceport bar. static void spaceport_bar(void); static void spaceport_bar_close(char* str); @@ -160,7 +160,7 @@ static void commodity_buy(char* str) { comname = toolkit_getList(secondary_wid, "lstGoods"); com = commodity_get(comname); - if(player_credits <= q * com->medium) { + if(player->credits <= q * com->medium) { toolkit_alert("Not enough Scred!"); return; } @@ -170,7 +170,7 @@ static void commodity_buy(char* str) { } q = pilot_addCargo(player, com, q); - player_credits -= q * com->medium; + player->credits -= q * com->medium; commodity_update(NULL); } @@ -185,7 +185,7 @@ static void commodity_sell(char* str) { com = commodity_get(comname); q = pilot_rmCargo(player, com, q); - player_credits += q * com->medium; + player->credits += q * com->medium; commodity_update(NULL); } @@ -260,7 +260,7 @@ static void outfits_update(char* str) { (void)str; char* outfitname; Outfit* outfit; - char buf[80], buf2[16], buf3[16]; + char buf[128], buf2[16], buf3[16]; outfitname = toolkit_getList(secondary_wid, "lstOutfits"); outfit = outfit_get(outfitname); @@ -269,8 +269,8 @@ static void outfits_update(char* str) { window_modifyText(secondary_wid, "txtDescription", outfit->description); credits2str(buf2, outfit->price, 2); - credits2str(buf3, player_credits, 2); - snprintf(buf, 80, + credits2str(buf3, player->credits, 2); + snprintf(buf, 128, "%s\n" "%s\n" "%d\n" @@ -319,13 +319,13 @@ static void outfits_buy(char* str) { return; } // Not enough $$. - else if(q*(int)outfit->price >= player_credits) { - credits2str(buf, q*outfit->price - player_credits, 2); + else if(q*(int)outfit->price >= player->credits) { + credits2str(buf, q*outfit->price - player->credits, 2); toolkit_alert("You need %s more SCred.", buf); return; } - player_credits -= outfit->price * pilot_addOutfit(player, outfit, + player->credits -= outfit->price * pilot_addOutfit(player, outfit, MIN(q, outfit->max)); outfits_update(NULL); } @@ -347,7 +347,7 @@ static void outfits_sell(char* str) { return; } - player_credits += outfit->price * pilot_rmOutfit(player, outfit, q); + player->credits += outfit->price * pilot_rmOutfit(player, outfit, q); outfits_update(NULL); } @@ -455,7 +455,7 @@ static void shipyard_update(char* str) { window_modifyText(secondary_wid, "txtDescription", ship->description); credits2str(buf2, ship->price, 2); - credits2str(buf3, player_credits, 2); + credits2str(buf3, player->credits, 2); snprintf(buf, 80, "%s\n" "%s\n" @@ -571,11 +571,10 @@ static void shipyard_yoursUpdate(char* str) { // Update the image. window_modifyImage(terciary_wid, "imgTarget", ship->ship->gfx_target); - credits2str(buf2, (strcmp(loc, land_planet->name)==0) ? 0 : - shipyard_yoursTransportPrice(shipname), 2); // Transport. + credits2str(buf2, shipyard_yoursTransportPrice(shipname), 2); // Transport. credits2str(buf3, 0, 2); // Sell price. - snprintf(buf, 80, + snprintf(buf, 256, "%s\n" "%s\n" "%s\n" @@ -653,11 +652,15 @@ static void shipyard_yoursTransport(char* str) { return; } + // Success. player->credits -= price; player_setLoc(shipname, land_planet->name); + + // Update the window to reflect the change. + shipyard_yoursUpdate(NULL); } -static char shipyard_yoursTransportPrice(char* shipname) { +static int shipyard_yoursTransportPrice(char* shipname) { char* loc; Pilot* ship; @@ -666,7 +669,7 @@ static char shipyard_yoursTransportPrice(char* shipname) { if(strcmp(loc, land_planet->name)==0) // Already here. return 0; - return ship->solid->mass*500; + return (int)ship->solid->mass*500; } // Spaceport bar. diff --git a/src/player.c b/src/player.c index 97abdf8..204725c 100644 --- a/src/player.c +++ b/src/player.c @@ -32,13 +32,13 @@ Pilot* player = NULL; // extern in pilot.h static Ship* player_ship = NULL; // Temp ship to hold when naming it. // More hacks. static double player_px, player_py, player_vx, player_vy, player_dir; +static int player_credits = 0; // Temp hack. // Player pilot stack - Ships she owns. static Pilot** player_stack = NULL; static char** player_lstack = NULL; // Names of the planet the ships are at. static int player_nstack = 0; // Player global properties. char* player_name = NULL; // Player name. -int player_credits = 0; // Ze monies. int combat_crating = 0; // Ze rating. unsigned int player_flags = 0; // Player flags. // Input.c @@ -314,6 +314,7 @@ static void player_newShipMake(char* name) { player_lstack = realloc(player_lstack, sizeof(char*)*(player_nstack+1)); player_lstack[player_nstack] = strdup(land_planet->name); player_nstack++; + if(!player_credits) player_credits = player->credits; pilot_destroy(player); } @@ -327,6 +328,10 @@ static void player_newShipMake(char* name) { player_dir, &vp, &vv, PILOT_PLAYER); gl_bindCamera(&player->solid->pos); // Set opengl camera. + + // Moniez!! + player->credits = player_credits; + player_credits = 0; } // Swaps the current ship with shipname. @@ -692,7 +697,7 @@ void player_render(void) { gl_print(NULL, gui.misc.x + 8, j, &cConsole, "SCreds:"); - credits2str(str, player_credits, 2); + credits2str(str, player->credits, 2); i = gl_printWidth(&gl_smallFont, str); gl_print(&gl_smallFont, gui.misc.x + gui.misc.w - 8 - i, j, diff --git a/src/player.h b/src/player.h index 2e67be2..826c153 100644 --- a/src/player.h +++ b/src/player.h @@ -21,7 +21,6 @@ extern Pilot* pilot; extern char* player_name; extern unsigned int player_flags; -extern int player_credits; extern int combat_crating; // Enums.