Use macro get_local_player_energy for local player's energy

This commit is contained in:
Kp 2015-10-30 02:52:55 +00:00
parent 3ffd207e44
commit ea5b7a08c1
13 changed files with 64 additions and 65 deletions

View file

@ -172,6 +172,7 @@ static_assert(sizeof(player_rw) == 142, "wrong size player_rw");
#define get_local_player() (Players[Player_num])
#define get_local_plrobj() (*vobjptr(get_local_player().objnum))
#define get_local_player_energy() (get_local_player().energy)
#define get_local_player_shields() (get_local_player().shields)
#endif

View file

@ -139,14 +139,14 @@ void read_flying_controls(const vobjptr_t obj)
//charge up to full
charge_up = min(FrameTime/8,f1_0 - Afterburner_charge); //recharge over 8 seconds
cur_energy = max(get_local_player().energy-i2f(10),0); //don't drop below 10
cur_energy = max(get_local_player_energy()-i2f(10),0); //don't drop below 10
//maybe limit charge up by energy
charge_up = min(charge_up,cur_energy/10);
Afterburner_charge += charge_up;
get_local_player().energy -= charge_up * 100 / 10; //full charge uses 10% of energy
get_local_player_energy() -= charge_up * 100 / 10; //full charge uses 10% of energy
}
}
#endif

View file

@ -941,14 +941,13 @@ objptridx_t drop_powerup(int type, int id, int num, const vms_vector &init_vel,
#if defined(DXX_BUILD_DESCENT_II)
static bool skip_create_egg_powerup(powerup_type_t powerup)
{
fix player::*pcurrent;
fix current;
if (powerup == POW_SHIELD_BOOST)
pcurrent = &player::shields;
current = get_local_player_shields();
else if (powerup == POW_ENERGY)
pcurrent = &player::energy;
current = get_local_player_energy();
else
return false;
fix current = get_local_player().*pcurrent;
int limit;
if (current >= i2f(150))
limit = 8192;

View file

@ -797,7 +797,7 @@ int allowed_to_fire_flare(void)
return 0;
#if defined(DXX_BUILD_DESCENT_II)
if (get_local_player().energy < Weapon_info[FLARE_ID].energy_usage)
if (get_local_player_energy() < Weapon_info[FLARE_ID].energy_usage)
#define FLARE_BIG_DELAY (F1_0*2)
Next_flare_fire_time = GameTime64 + FLARE_BIG_DELAY;
else
@ -1327,8 +1327,8 @@ void GameProcessFrame(void)
if ((get_local_player().flags & PLAYER_FLAGS_HEADLIGHT) && (get_local_player().flags & PLAYER_FLAGS_HEADLIGHT_ON)) {
static int turned_off=0;
get_local_player().energy -= (FrameTime*3/8);
if (get_local_player().energy < i2f(10)) {
get_local_player_energy() -= (FrameTime*3/8);
if (get_local_player_energy() < i2f(10)) {
if (!turned_off) {
get_local_player().flags &= ~PLAYER_FLAGS_HEADLIGHT_ON;
turned_off = 1;
@ -1339,9 +1339,9 @@ void GameProcessFrame(void)
else
turned_off = 0;
if (get_local_player().energy <= 0)
if (get_local_player_energy() <= 0)
{
get_local_player().energy = 0;
get_local_player_energy() = 0;
get_local_player().flags &= ~PLAYER_FLAGS_HEADLIGHT_ON;
if (Game_mode & GM_MULTI)
multi_send_flags(Player_num);
@ -1641,20 +1641,20 @@ void FireLaser()
Global_laser_firing_count = Controls.state.fire_primary?Weapon_info[Primary_weapon_to_weapon_info[Primary_weapon]].fire_count:0;
if ((Primary_weapon == primary_weapon_index_t::FUSION_INDEX) && (Global_laser_firing_count)) {
if ((get_local_player().energy < F1_0*2) && (Auto_fire_fusion_cannon_time == 0)) {
if ((get_local_player_energy() < F1_0*2) && (Auto_fire_fusion_cannon_time == 0)) {
Global_laser_firing_count = 0;
} else {
static fix64 Fusion_next_sound_time = 0;
if (Fusion_charge == 0)
get_local_player().energy -= F1_0*2;
get_local_player_energy() -= F1_0*2;
Fusion_charge += FrameTime;
get_local_player().energy -= FrameTime;
get_local_player_energy() -= FrameTime;
if (get_local_player().energy <= 0)
if (get_local_player_energy() <= 0)
{
get_local_player().energy = 0;
get_local_player_energy() = 0;
Auto_fire_fusion_cannon_time = GameTime64 -1; // Fire now!
} else
Auto_fire_fusion_cannon_time = GameTime64 + FrameTime/2 + 1; // Fire the fusion cannon at this time in the future.

View file

@ -150,11 +150,11 @@ static void transfer_energy_to_shield()
fix e; //how much energy gets transfered
static fix64 last_play_time=0;
e = min(min(FrameTime*CONVERTER_RATE, get_local_player().energy - INITIAL_ENERGY),(MAX_SHIELDS-get_local_player_shields()) * CONVERTER_SCALE);
e = min(min(FrameTime*CONVERTER_RATE, get_local_player_energy() - INITIAL_ENERGY),(MAX_SHIELDS-get_local_player_shields()) * CONVERTER_SCALE);
if (e <= 0) {
if (get_local_player().energy <= INITIAL_ENERGY) {
if (get_local_player_energy() <= INITIAL_ENERGY) {
HUD_init_message(HM_DEFAULT, "Need more than %i energy to enable transfer", f2i(INITIAL_ENERGY));
}
else if (get_local_player_shields() >= MAX_SHIELDS) {
@ -163,7 +163,7 @@ static void transfer_energy_to_shield()
return;
}
get_local_player().energy -= e;
get_local_player_energy() -= e;
get_local_player_shields() += e/CONVERTER_SCALE;
if (last_play_time > GameTime64)
@ -1482,7 +1482,7 @@ static window_event_result FinalCheats()
if (Newdemo_state == ND_STATE_RECORDING)
newdemo_record_laser_level(get_local_player().laser_level, MAX_LASER_LEVEL);
get_local_player().energy = MAX_ENERGY;
get_local_player_energy() = MAX_ENERGY;
get_local_player().laser_level = MAX_LASER_LEVEL;
get_local_player().flags |= PLAYER_FLAGS_QUAD_LASERS;
update_laser_weapon_info();
@ -1501,7 +1501,7 @@ static window_event_result FinalCheats()
if (Newdemo_state == ND_STATE_RECORDING)
newdemo_record_laser_level(get_local_player().laser_level, MAX_LASER_LEVEL);
get_local_player().energy = MAX_ENERGY;
get_local_player_energy() = MAX_ENERGY;
get_local_player().laser_level = MAX_LASER_LEVEL;
get_local_player().flags |= PLAYER_FLAGS_QUAD_LASERS;
update_laser_weapon_info();
@ -1509,7 +1509,7 @@ static window_event_result FinalCheats()
#elif defined(DXX_BUILD_DESCENT_II)
if (gotcha == &game_cheats::lamer)
{
get_local_player_shields()=get_local_player().energy=i2f(1);
get_local_player_shields()=get_local_player_energy()=i2f(1);
HUD_init_message_literal(HM_DEFAULT, "Take that...cheater!");
}
@ -1540,7 +1540,7 @@ static window_event_result FinalCheats()
if (Newdemo_state == ND_STATE_RECORDING)
newdemo_record_laser_level(get_local_player().laser_level, MAX_LASER_LEVEL);
get_local_player().energy = MAX_ENERGY;
get_local_player_energy() = MAX_ENERGY;
get_local_player().laser_level = MAX_SUPER_LASER_LEVEL;
get_local_player().flags |= PLAYER_FLAGS_QUAD_LASERS;
update_laser_weapon_info();

View file

@ -290,8 +290,8 @@ void init_player_stats_game(ubyte pnum)
static void init_ammo_and_energy(void)
{
if (get_local_player().energy < INITIAL_ENERGY)
get_local_player().energy = INITIAL_ENERGY;
if (get_local_player_energy() < INITIAL_ENERGY)
get_local_player_energy() = INITIAL_ENERGY;
if (get_local_player_shields() < StartingShields)
get_local_player_shields() = StartingShields;
if (get_local_player().secondary_ammo[0] < 2 + NDL - Difficulty_level)
@ -373,6 +373,7 @@ void init_player_stats_level(const secret_restore secret_flag)
void init_player_stats_new_ship(ubyte pnum)
{
auto &plr = Players[pnum];
plr.energy = INITIAL_ENERGY;
plr.shields = StartingShields;
const auto GrantedItems = (Game_mode & GM_MULTI) ? Netgame.SpawnGrantedItems : 0;
const auto granted_primary_weapon_flags = map_granted_flags_to_primary_weapon_flags(GrantedItems);
@ -442,8 +443,6 @@ void init_player_stats_new_ship(ubyte pnum)
init_ai_for_ship();
#endif
}
Players[pnum].energy = INITIAL_ENERGY;
Players[pnum].laser_level = granted_laser_level;
Players[pnum].killer_objnum = object_none;
Players[pnum].hostages_on_board = 0;
@ -861,10 +860,10 @@ void DoEndLevelScoreGlitz(int network)
hostage_points = get_local_player().hostages_on_board * 500 * (Difficulty_level+1);
#if defined(DXX_BUILD_DESCENT_I)
shield_points = f2i(get_local_player_shields()) * 10 * (Difficulty_level+1);
energy_points = f2i(get_local_player().energy) * 5 * (Difficulty_level+1);
energy_points = f2i(get_local_player_energy()) * 5 * (Difficulty_level+1);
#elif defined(DXX_BUILD_DESCENT_II)
shield_points = f2i(get_local_player_shields()) * 5 * mine_level;
energy_points = f2i(get_local_player().energy) * 2 * mine_level;
energy_points = f2i(get_local_player_energy()) * 2 * mine_level;
shield_points -= shield_points % 50;
energy_points -= energy_points % 50;
@ -1451,7 +1450,7 @@ void DoPlayerDead()
//clear out stuff so no bonus
get_local_player().hostages_on_board = 0;
get_local_player().energy = 0;
get_local_player_energy() = 0;
get_local_player_shields() = 0;
get_local_player().connected = CONNECT_DIED_IN_MINE;

View file

@ -981,11 +981,11 @@ static void hud_show_energy(void)
gr_set_curfont( GAME_FONT );
gr_set_fontcolor(BM_XRGB(0,31,0),-1 );
const auto &&line_spacing = LINE_SPACING;
gr_printf(FSPACX(1), grd_curcanv->cv_bitmap.bm_h - ((Game_mode & GM_MULTI) ? (line_spacing * 5) : line_spacing),"%s: %i", TXT_ENERGY, f2ir(get_local_player().energy));
gr_printf(FSPACX(1), grd_curcanv->cv_bitmap.bm_h - ((Game_mode & GM_MULTI) ? (line_spacing * 5) : line_spacing),"%s: %i", TXT_ENERGY, f2ir(get_local_player_energy()));
}
if (Newdemo_state == ND_STATE_RECORDING)
newdemo_record_player_energy(f2ir(get_local_player().energy));
newdemo_record_player_energy(f2ir(get_local_player_energy()));
}
#if defined(DXX_BUILD_DESCENT_I)
@ -1445,7 +1445,7 @@ static void hud_show_weapons(void)
gr_set_fontcolor(BM_XRGB(14,14,23),-1 );
gr_printf(x2, y - (line_spacing * 4),"%i", f2ir(get_local_player_shields()));
gr_set_fontcolor(BM_XRGB(25,18,6),-1 );
gr_printf(x1, y - (line_spacing * 4),"%i", f2ir(get_local_player().energy));
gr_printf(x1, y - (line_spacing * 4),"%i", f2ir(get_local_player_energy()));
}
else
{
@ -3058,7 +3058,7 @@ void draw_hud()
//print out some player statistics
void render_gauges()
{
int energy = f2ir(get_local_player().energy);
int energy = f2ir(get_local_player_energy());
int cloak = ((get_local_player().flags&PLAYER_FLAGS_CLOAKED) != 0);
Assert(PlayerCfg.CockpitMode[1]==CM_FULL_COCKPIT || PlayerCfg.CockpitMode[1]==CM_STATUS_BAR);

View file

@ -522,7 +522,7 @@ void omega_charge_frame(void)
if (Last_omega_fire_time + F1_0/3 > GameTime64)
return;
if (get_local_player().energy)
if (get_local_player_energy())
{
fix energy_used;
@ -537,9 +537,9 @@ void omega_charge_frame(void)
if (Difficulty_level < 2)
energy_used = fixmul(energy_used, i2f(Difficulty_level+2)/4);
get_local_player().energy -= energy_used;
if (get_local_player().energy < 0)
get_local_player().energy = 0;
get_local_player_energy() -= energy_used;
if (get_local_player_energy() < 0)
get_local_player_energy() = 0;
}
@ -1453,13 +1453,13 @@ void Flare_create(const vobjptridx_t obj)
// MK, 11/04/95: Allowed to fire flare even if no energy.
// -- if (Players[Player_num].energy >= energy_usage)
#if defined(DXX_BUILD_DESCENT_I)
if (get_local_player().energy > 0)
if (get_local_player_energy() > 0)
#endif
{
get_local_player().energy -= energy_usage;
get_local_player_energy() -= energy_usage;
if (get_local_player().energy <= 0) {
get_local_player().energy = 0;
if (get_local_player_energy() <= 0) {
get_local_player_energy() = 0;
#if defined(DXX_BUILD_DESCENT_I)
auto_select_primary_weapon();
#endif

View file

@ -1037,8 +1037,8 @@ void newdemo_record_start_demo()
nd_write_string(Current_mission_filename);
nd_record_v_player_energy = (sbyte)(f2ir(get_local_player().energy));
nd_write_byte((sbyte)(f2ir(get_local_player().energy)));
nd_record_v_player_energy = (sbyte)(f2ir(get_local_player_energy()));
nd_write_byte((sbyte)(f2ir(get_local_player_energy())));
nd_record_v_player_shields = (sbyte)(f2ir(get_local_player_shields()));
nd_write_byte((sbyte)(f2ir(get_local_player_shields())));
nd_write_int(nd_record_v_player_flags = get_local_player().flags.get_player_flags()); // be sure players flags are set
@ -1864,7 +1864,7 @@ static int newdemo_read_demo_start(enum purpose_type purpose)
#if defined(DXX_BUILD_DESCENT_II)
nd_playback_v_juststarted=1;
#endif
get_local_player().energy = i2f(energy);
get_local_player_energy() = i2f(energy);
get_local_player_shields() = i2f(shield);
return 0;
}
@ -2348,14 +2348,14 @@ static int newdemo_read_frame_information(int rewrite)
break;
}
if (shareware)
get_local_player().energy = i2f(energy);
get_local_player_energy() = i2f(energy);
else
{
if ((Newdemo_vcr_state == ND_STATE_PLAYBACK) || (Newdemo_vcr_state == ND_STATE_FASTFORWARD) || (Newdemo_vcr_state == ND_STATE_ONEFRAMEFORWARD)) {
get_local_player().energy = i2f(energy);
get_local_player_energy() = i2f(energy);
} else if ((Newdemo_vcr_state == ND_STATE_REWINDING) || (Newdemo_vcr_state == ND_STATE_ONEFRAMEBACKWARD)) {
if (old_energy != 255)
get_local_player().energy = i2f(old_energy);
get_local_player_energy() = i2f(old_energy);
}
}
break;
@ -3241,7 +3241,7 @@ void newdemo_goto_end(int to_rewrite)
nd_read_byte((sbyte *)&energy);
nd_read_byte((sbyte *)&shield);
get_local_player().energy = i2f(energy);
get_local_player_energy() = i2f(energy);
get_local_player_shields() = i2f(shield);
int recorded_player_flags;
nd_read_int(&recorded_player_flags);
@ -3651,7 +3651,7 @@ static void newdemo_write_end()
{
byte_count += 10; // from nd_record_v_framebytes_written
nd_write_byte((sbyte)(f2ir(get_local_player().energy)));
nd_write_byte((sbyte)(f2ir(get_local_player_energy())));
nd_write_byte((sbyte)(f2ir(get_local_player_shields())));
nd_write_int(get_local_player().flags.get_player_flags()); // be sure players flags are set
nd_write_byte((sbyte)Primary_weapon);

View file

@ -1661,9 +1661,9 @@ static void object_move_one(const vobjptridx_t obj)
fuelcen_check_for_hoard_goal (&Segments[obj->segnum]);
#endif
fix fuel=fuelcen_give_fuel(vsegptr(obj->segnum), INITIAL_ENERGY - get_local_player().energy );
fix fuel=fuelcen_give_fuel(vsegptr(obj->segnum), INITIAL_ENERGY - get_local_player_energy() );
if (fuel > 0 ) {
get_local_player().energy += fuel;
get_local_player_energy() += fuel;
}
#if defined(DXX_BUILD_DESCENT_II)
fix shields = repaircen_give_shields( &Segments[obj->segnum], INITIAL_SHIELDS - get_local_player_shields() );

View file

@ -165,7 +165,7 @@ void do_megawow_powerup(int quantity)
if (Newdemo_state == ND_STATE_RECORDING)
newdemo_record_laser_level(get_local_player().laser_level, MAX_LASER_LEVEL);
get_local_player().energy = F1_0*200;
get_local_player_energy() = F1_0*200;
get_local_player_shields() = F1_0*200;
get_local_player().flags |= PLAYER_FLAGS_QUAD_LASERS;
#if defined(DXX_BUILD_DESCENT_I)
@ -187,17 +187,17 @@ static int pick_up_energy(void)
{
int used=0;
if (get_local_player().energy < MAX_ENERGY) {
if (get_local_player_energy() < MAX_ENERGY) {
fix boost;
boost = 3*F1_0 + 3*F1_0*(NDL - Difficulty_level);
#if defined(DXX_BUILD_DESCENT_II)
if (Difficulty_level == 0)
boost += boost/2;
#endif
get_local_player().energy += boost;
if (get_local_player().energy > MAX_ENERGY)
get_local_player().energy = MAX_ENERGY;
powerup_basic(15,15,7, ENERGY_SCORE, "%s %s %d",TXT_ENERGY,TXT_BOOSTED_TO,f2ir(get_local_player().energy));
get_local_player_energy() += boost;
if (get_local_player_energy() > MAX_ENERGY)
get_local_player_energy() = MAX_ENERGY;
powerup_basic(15,15,7, ENERGY_SCORE, "%s %s %d",TXT_ENERGY,TXT_BOOSTED_TO,f2ir(get_local_player_energy()));
used=1;
} else
HUD_init_message(HM_DEFAULT|HM_REDUNDANT|HM_MAYDUPL, TXT_MAXED_OUT,TXT_ENERGY);

View file

@ -394,7 +394,7 @@ int check_trigger_sub(int trigger_num, int pnum,int shot)
}
if (Triggers[trigger_num].flags & TRIGGER_ENERGY_DRAIN) {
get_local_player().energy -= Triggers[trigger_num].value;
get_local_player_energy() -= Triggers[trigger_num].value;
}
}

View file

@ -188,8 +188,8 @@ has_weapon_result player_has_primary_weapon(int weapon_num)
// Hack! If energy goes negative, you can't fire a weapon that doesn't require energy.
// But energy should not go negative (but it does), so find out why it does!
if (get_local_player().energy < 0)
get_local_player().energy = 0;
if (get_local_player_energy() < 0)
get_local_player_energy() = 0;
const auto weapon_index = Primary_weapon_to_weapon_info[weapon_num];
@ -210,17 +210,17 @@ has_weapon_result player_has_primary_weapon(int weapon_num)
//fusion has 0 energy usage, HAS_ENERGY_FLAG was always true
if(weapon_num == primary_weapon_index_t::FUSION_INDEX)
{
if(get_local_player().energy >= F1_0*2)
if(get_local_player_energy() >= F1_0*2)
return_value |= has_weapon_result::has_energy_flag;
}
#elif defined(DXX_BUILD_DESCENT_II)
if (weapon_num == primary_weapon_index_t::OMEGA_INDEX) { // Hack: Make sure player has energy to omega
if (get_local_player().energy || Omega_charge)
if (get_local_player_energy() || Omega_charge)
return_value |= has_weapon_result::has_energy_flag;
}
#endif
else
if (Weapon_info[weapon_index].energy_usage <= get_local_player().energy)
if (Weapon_info[weapon_index].energy_usage <= get_local_player_energy())
return_value |= has_weapon_result::has_energy_flag;
return return_value;
}
@ -233,7 +233,7 @@ has_weapon_result player_has_secondary_weapon(int weapon_num)
if (Weapon_info[weapon_index].ammo_usage <= get_local_player().secondary_ammo[weapon_num])
return_value |= has_weapon_result::has_ammo_flag;
if (Weapon_info[weapon_index].energy_usage <= get_local_player().energy)
if (Weapon_info[weapon_index].energy_usage <= get_local_player_energy())
return_value |= has_weapon_result::has_energy_flag;
return return_value;
}