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_player() (Players[Player_num])
#define get_local_plrobj() (*vobjptr(get_local_player().objnum)) #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) #define get_local_player_shields() (get_local_player().shields)
#endif #endif

View file

@ -139,14 +139,14 @@ void read_flying_controls(const vobjptr_t obj)
//charge up to full //charge up to full
charge_up = min(FrameTime/8,f1_0 - Afterburner_charge); //recharge over 8 seconds 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 //maybe limit charge up by energy
charge_up = min(charge_up,cur_energy/10); charge_up = min(charge_up,cur_energy/10);
Afterburner_charge += charge_up; 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 #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) #if defined(DXX_BUILD_DESCENT_II)
static bool skip_create_egg_powerup(powerup_type_t powerup) static bool skip_create_egg_powerup(powerup_type_t powerup)
{ {
fix player::*pcurrent; fix current;
if (powerup == POW_SHIELD_BOOST) if (powerup == POW_SHIELD_BOOST)
pcurrent = &player::shields; current = get_local_player_shields();
else if (powerup == POW_ENERGY) else if (powerup == POW_ENERGY)
pcurrent = &player::energy; current = get_local_player_energy();
else else
return false; return false;
fix current = get_local_player().*pcurrent;
int limit; int limit;
if (current >= i2f(150)) if (current >= i2f(150))
limit = 8192; limit = 8192;

View file

@ -797,7 +797,7 @@ int allowed_to_fire_flare(void)
return 0; return 0;
#if defined(DXX_BUILD_DESCENT_II) #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) #define FLARE_BIG_DELAY (F1_0*2)
Next_flare_fire_time = GameTime64 + FLARE_BIG_DELAY; Next_flare_fire_time = GameTime64 + FLARE_BIG_DELAY;
else else
@ -1327,8 +1327,8 @@ void GameProcessFrame(void)
if ((get_local_player().flags & PLAYER_FLAGS_HEADLIGHT) && (get_local_player().flags & PLAYER_FLAGS_HEADLIGHT_ON)) { if ((get_local_player().flags & PLAYER_FLAGS_HEADLIGHT) && (get_local_player().flags & PLAYER_FLAGS_HEADLIGHT_ON)) {
static int turned_off=0; static int turned_off=0;
get_local_player().energy -= (FrameTime*3/8); get_local_player_energy() -= (FrameTime*3/8);
if (get_local_player().energy < i2f(10)) { if (get_local_player_energy() < i2f(10)) {
if (!turned_off) { if (!turned_off) {
get_local_player().flags &= ~PLAYER_FLAGS_HEADLIGHT_ON; get_local_player().flags &= ~PLAYER_FLAGS_HEADLIGHT_ON;
turned_off = 1; turned_off = 1;
@ -1339,9 +1339,9 @@ void GameProcessFrame(void)
else else
turned_off = 0; 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; get_local_player().flags &= ~PLAYER_FLAGS_HEADLIGHT_ON;
if (Game_mode & GM_MULTI) if (Game_mode & GM_MULTI)
multi_send_flags(Player_num); 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; 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 ((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; Global_laser_firing_count = 0;
} else { } else {
static fix64 Fusion_next_sound_time = 0; static fix64 Fusion_next_sound_time = 0;
if (Fusion_charge == 0) if (Fusion_charge == 0)
get_local_player().energy -= F1_0*2; get_local_player_energy() -= F1_0*2;
Fusion_charge += FrameTime; 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! Auto_fire_fusion_cannon_time = GameTime64 -1; // Fire now!
} else } else
Auto_fire_fusion_cannon_time = GameTime64 + FrameTime/2 + 1; // Fire the fusion cannon at this time in the future. 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 fix e; //how much energy gets transfered
static fix64 last_play_time=0; 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 (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)); HUD_init_message(HM_DEFAULT, "Need more than %i energy to enable transfer", f2i(INITIAL_ENERGY));
} }
else if (get_local_player_shields() >= MAX_SHIELDS) { else if (get_local_player_shields() >= MAX_SHIELDS) {
@ -163,7 +163,7 @@ static void transfer_energy_to_shield()
return; return;
} }
get_local_player().energy -= e; get_local_player_energy() -= e;
get_local_player_shields() += e/CONVERTER_SCALE; get_local_player_shields() += e/CONVERTER_SCALE;
if (last_play_time > GameTime64) if (last_play_time > GameTime64)
@ -1482,7 +1482,7 @@ static window_event_result FinalCheats()
if (Newdemo_state == ND_STATE_RECORDING) if (Newdemo_state == ND_STATE_RECORDING)
newdemo_record_laser_level(get_local_player().laser_level, MAX_LASER_LEVEL); 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().laser_level = MAX_LASER_LEVEL;
get_local_player().flags |= PLAYER_FLAGS_QUAD_LASERS; get_local_player().flags |= PLAYER_FLAGS_QUAD_LASERS;
update_laser_weapon_info(); update_laser_weapon_info();
@ -1501,7 +1501,7 @@ static window_event_result FinalCheats()
if (Newdemo_state == ND_STATE_RECORDING) if (Newdemo_state == ND_STATE_RECORDING)
newdemo_record_laser_level(get_local_player().laser_level, MAX_LASER_LEVEL); 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().laser_level = MAX_LASER_LEVEL;
get_local_player().flags |= PLAYER_FLAGS_QUAD_LASERS; get_local_player().flags |= PLAYER_FLAGS_QUAD_LASERS;
update_laser_weapon_info(); update_laser_weapon_info();
@ -1509,7 +1509,7 @@ static window_event_result FinalCheats()
#elif defined(DXX_BUILD_DESCENT_II) #elif defined(DXX_BUILD_DESCENT_II)
if (gotcha == &game_cheats::lamer) 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!"); HUD_init_message_literal(HM_DEFAULT, "Take that...cheater!");
} }
@ -1540,7 +1540,7 @@ static window_event_result FinalCheats()
if (Newdemo_state == ND_STATE_RECORDING) if (Newdemo_state == ND_STATE_RECORDING)
newdemo_record_laser_level(get_local_player().laser_level, MAX_LASER_LEVEL); 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().laser_level = MAX_SUPER_LASER_LEVEL;
get_local_player().flags |= PLAYER_FLAGS_QUAD_LASERS; get_local_player().flags |= PLAYER_FLAGS_QUAD_LASERS;
update_laser_weapon_info(); update_laser_weapon_info();

View file

@ -290,8 +290,8 @@ void init_player_stats_game(ubyte pnum)
static void init_ammo_and_energy(void) static void init_ammo_and_energy(void)
{ {
if (get_local_player().energy < INITIAL_ENERGY) if (get_local_player_energy() < INITIAL_ENERGY)
get_local_player().energy = INITIAL_ENERGY; get_local_player_energy() = INITIAL_ENERGY;
if (get_local_player_shields() < StartingShields) if (get_local_player_shields() < StartingShields)
get_local_player_shields() = StartingShields; get_local_player_shields() = StartingShields;
if (get_local_player().secondary_ammo[0] < 2 + NDL - Difficulty_level) 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) void init_player_stats_new_ship(ubyte pnum)
{ {
auto &plr = Players[pnum]; auto &plr = Players[pnum];
plr.energy = INITIAL_ENERGY;
plr.shields = StartingShields; plr.shields = StartingShields;
const auto GrantedItems = (Game_mode & GM_MULTI) ? Netgame.SpawnGrantedItems : 0; const auto GrantedItems = (Game_mode & GM_MULTI) ? Netgame.SpawnGrantedItems : 0;
const auto granted_primary_weapon_flags = map_granted_flags_to_primary_weapon_flags(GrantedItems); 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(); init_ai_for_ship();
#endif #endif
} }
Players[pnum].energy = INITIAL_ENERGY;
Players[pnum].laser_level = granted_laser_level; Players[pnum].laser_level = granted_laser_level;
Players[pnum].killer_objnum = object_none; Players[pnum].killer_objnum = object_none;
Players[pnum].hostages_on_board = 0; 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); hostage_points = get_local_player().hostages_on_board * 500 * (Difficulty_level+1);
#if defined(DXX_BUILD_DESCENT_I) #if defined(DXX_BUILD_DESCENT_I)
shield_points = f2i(get_local_player_shields()) * 10 * (Difficulty_level+1); 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) #elif defined(DXX_BUILD_DESCENT_II)
shield_points = f2i(get_local_player_shields()) * 5 * mine_level; 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; shield_points -= shield_points % 50;
energy_points -= energy_points % 50; energy_points -= energy_points % 50;
@ -1451,7 +1450,7 @@ void DoPlayerDead()
//clear out stuff so no bonus //clear out stuff so no bonus
get_local_player().hostages_on_board = 0; 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_shields() = 0;
get_local_player().connected = CONNECT_DIED_IN_MINE; 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_curfont( GAME_FONT );
gr_set_fontcolor(BM_XRGB(0,31,0),-1 ); gr_set_fontcolor(BM_XRGB(0,31,0),-1 );
const auto &&line_spacing = LINE_SPACING; 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) 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) #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_set_fontcolor(BM_XRGB(14,14,23),-1 );
gr_printf(x2, y - (line_spacing * 4),"%i", f2ir(get_local_player_shields())); gr_printf(x2, y - (line_spacing * 4),"%i", f2ir(get_local_player_shields()));
gr_set_fontcolor(BM_XRGB(25,18,6),-1 ); 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 else
{ {
@ -3058,7 +3058,7 @@ void draw_hud()
//print out some player statistics //print out some player statistics
void render_gauges() 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); int cloak = ((get_local_player().flags&PLAYER_FLAGS_CLOAKED) != 0);
Assert(PlayerCfg.CockpitMode[1]==CM_FULL_COCKPIT || PlayerCfg.CockpitMode[1]==CM_STATUS_BAR); 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) if (Last_omega_fire_time + F1_0/3 > GameTime64)
return; return;
if (get_local_player().energy) if (get_local_player_energy())
{ {
fix energy_used; fix energy_used;
@ -537,9 +537,9 @@ void omega_charge_frame(void)
if (Difficulty_level < 2) if (Difficulty_level < 2)
energy_used = fixmul(energy_used, i2f(Difficulty_level+2)/4); energy_used = fixmul(energy_used, i2f(Difficulty_level+2)/4);
get_local_player().energy -= energy_used; get_local_player_energy() -= energy_used;
if (get_local_player().energy < 0) if (get_local_player_energy() < 0)
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. // MK, 11/04/95: Allowed to fire flare even if no energy.
// -- if (Players[Player_num].energy >= energy_usage) // -- if (Players[Player_num].energy >= energy_usage)
#if defined(DXX_BUILD_DESCENT_I) #if defined(DXX_BUILD_DESCENT_I)
if (get_local_player().energy > 0) if (get_local_player_energy() > 0)
#endif #endif
{ {
get_local_player().energy -= energy_usage; get_local_player_energy() -= energy_usage;
if (get_local_player().energy <= 0) { if (get_local_player_energy() <= 0) {
get_local_player().energy = 0; get_local_player_energy() = 0;
#if defined(DXX_BUILD_DESCENT_I) #if defined(DXX_BUILD_DESCENT_I)
auto_select_primary_weapon(); auto_select_primary_weapon();
#endif #endif

View file

@ -1037,8 +1037,8 @@ void newdemo_record_start_demo()
nd_write_string(Current_mission_filename); nd_write_string(Current_mission_filename);
nd_record_v_player_energy = (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_write_byte((sbyte)(f2ir(get_local_player_energy())));
nd_record_v_player_shields = (sbyte)(f2ir(get_local_player_shields())); nd_record_v_player_shields = (sbyte)(f2ir(get_local_player_shields()));
nd_write_byte((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 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) #if defined(DXX_BUILD_DESCENT_II)
nd_playback_v_juststarted=1; nd_playback_v_juststarted=1;
#endif #endif
get_local_player().energy = i2f(energy); get_local_player_energy() = i2f(energy);
get_local_player_shields() = i2f(shield); get_local_player_shields() = i2f(shield);
return 0; return 0;
} }
@ -2348,14 +2348,14 @@ static int newdemo_read_frame_information(int rewrite)
break; break;
} }
if (shareware) if (shareware)
get_local_player().energy = i2f(energy); get_local_player_energy() = i2f(energy);
else else
{ {
if ((Newdemo_vcr_state == ND_STATE_PLAYBACK) || (Newdemo_vcr_state == ND_STATE_FASTFORWARD) || (Newdemo_vcr_state == ND_STATE_ONEFRAMEFORWARD)) { 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)) { } else if ((Newdemo_vcr_state == ND_STATE_REWINDING) || (Newdemo_vcr_state == ND_STATE_ONEFRAMEBACKWARD)) {
if (old_energy != 255) if (old_energy != 255)
get_local_player().energy = i2f(old_energy); get_local_player_energy() = i2f(old_energy);
} }
} }
break; break;
@ -3241,7 +3241,7 @@ void newdemo_goto_end(int to_rewrite)
nd_read_byte((sbyte *)&energy); nd_read_byte((sbyte *)&energy);
nd_read_byte((sbyte *)&shield); nd_read_byte((sbyte *)&shield);
get_local_player().energy = i2f(energy); get_local_player_energy() = i2f(energy);
get_local_player_shields() = i2f(shield); get_local_player_shields() = i2f(shield);
int recorded_player_flags; int recorded_player_flags;
nd_read_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 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_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_int(get_local_player().flags.get_player_flags()); // be sure players flags are set
nd_write_byte((sbyte)Primary_weapon); 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]); fuelcen_check_for_hoard_goal (&Segments[obj->segnum]);
#endif #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 ) { if (fuel > 0 ) {
get_local_player().energy += fuel; get_local_player_energy() += fuel;
} }
#if defined(DXX_BUILD_DESCENT_II) #if defined(DXX_BUILD_DESCENT_II)
fix shields = repaircen_give_shields( &Segments[obj->segnum], INITIAL_SHIELDS - get_local_player_shields() ); 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) if (Newdemo_state == ND_STATE_RECORDING)
newdemo_record_laser_level(get_local_player().laser_level, MAX_LASER_LEVEL); 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_shields() = F1_0*200;
get_local_player().flags |= PLAYER_FLAGS_QUAD_LASERS; get_local_player().flags |= PLAYER_FLAGS_QUAD_LASERS;
#if defined(DXX_BUILD_DESCENT_I) #if defined(DXX_BUILD_DESCENT_I)
@ -187,17 +187,17 @@ static int pick_up_energy(void)
{ {
int used=0; int used=0;
if (get_local_player().energy < MAX_ENERGY) { if (get_local_player_energy() < MAX_ENERGY) {
fix boost; fix boost;
boost = 3*F1_0 + 3*F1_0*(NDL - Difficulty_level); boost = 3*F1_0 + 3*F1_0*(NDL - Difficulty_level);
#if defined(DXX_BUILD_DESCENT_II) #if defined(DXX_BUILD_DESCENT_II)
if (Difficulty_level == 0) if (Difficulty_level == 0)
boost += boost/2; boost += boost/2;
#endif #endif
get_local_player().energy += boost; get_local_player_energy() += boost;
if (get_local_player().energy > MAX_ENERGY) if (get_local_player_energy() > MAX_ENERGY)
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)); powerup_basic(15,15,7, ENERGY_SCORE, "%s %s %d",TXT_ENERGY,TXT_BOOSTED_TO,f2ir(get_local_player_energy()));
used=1; used=1;
} else } else
HUD_init_message(HM_DEFAULT|HM_REDUNDANT|HM_MAYDUPL, TXT_MAXED_OUT,TXT_ENERGY); 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) { 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. // 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! // But energy should not go negative (but it does), so find out why it does!
if (get_local_player().energy < 0) if (get_local_player_energy() < 0)
get_local_player().energy = 0; get_local_player_energy() = 0;
const auto weapon_index = Primary_weapon_to_weapon_info[weapon_num]; 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 //fusion has 0 energy usage, HAS_ENERGY_FLAG was always true
if(weapon_num == primary_weapon_index_t::FUSION_INDEX) 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; return_value |= has_weapon_result::has_energy_flag;
} }
#elif defined(DXX_BUILD_DESCENT_II) #elif defined(DXX_BUILD_DESCENT_II)
if (weapon_num == primary_weapon_index_t::OMEGA_INDEX) { // Hack: Make sure player has energy to omega 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; return_value |= has_weapon_result::has_energy_flag;
} }
#endif #endif
else 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_value |= has_weapon_result::has_energy_flag;
return return_value; 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]) if (Weapon_info[weapon_index].ammo_usage <= get_local_player().secondary_ammo[weapon_num])
return_value |= has_weapon_result::has_ammo_flag; 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_value |= has_weapon_result::has_energy_flag;
return return_value; return return_value;
} }