/** * @brief Adds an outfit to the player's outfit list. * * @usage player.addOutfit( "Laser Cannon" ) -- Gives the player a laser cannon * @usage player.addOutfit( "Plasma Blaster", 2 ) -- Gives the player two plasma blasters * * @luaparam name Name of the outfit to give. * @luaparam q Optional parameter that sets the quantity to give (default 1). * @luafunc addOutfit( name, q ) */ static int playerL_addOutfit( lua_State *L ) { const char *str; Outfit *o; int q; /* Defaults. */ q = 1; /* Handle parameters. */ str = luaL_checkstring(L, 1); if (lua_gettop(L) > 1) q = luaL_checkint(L, 2); /* Get outfit. */ o = outfit_get( str ); if (o==NULL) { NLUA_ERROR(L, "Outfit '%s' not found.", str); return 0; } /* Add the outfits. */ player_addOutfit( o, q ); /* Update equipment list. */ outfits_updateEquipmentOutfits(); return 0; }
/** * @brief Buys a local system map. */ static void spaceport_buyMap( unsigned int wid, char *str ) { (void) wid; (void) str; Outfit *o; unsigned int w; /* Make sure the map isn't already known, etc. */ if (land_errDialogue( LOCAL_MAP_NAME, "buyOutfit" )) return; o = outfit_get( LOCAL_MAP_NAME ); if (o == NULL) { WARN("Outfit '%s' does not exist!", LOCAL_MAP_NAME); return; } player_modCredits( -o->price ); player_addOutfit(o, 1); /* Disable the button. */ window_disableButtonSoft( land_windows[0], "btnMap" ); /* Update map quantity in outfitter. */ w = land_getWid( LAND_WINDOW_OUTFITS ); if (w > 0) outfits_regenList( w, NULL ); }