paavohtl Claude Sonnet 4.6 commited on
Commit
90d1791
·
1 Parent(s): 466d58a

feat: update debug UI with TurnGameCtx and CTaskTeam new fields

Browse files

CTaskTurnGame inspector gains a collapsible TurnGameCtx section showing:
land_height, sentinels, team_count, _slot_d0, hud_textbox_a/b.

CTaskTeam inspector gains alive_worm_count, last_launched_weapon, pos_x/pos_y.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Files changed (1) hide show
  1. crates/openwa-debugui/src/app.rs +26 -3
crates/openwa-debugui/src/app.rs CHANGED
@@ -3,7 +3,7 @@ use openwa_core::address::va;
3
  use openwa_core::ddgame::DDGame;
4
  use openwa_core::ddgame_wrapper::DDGameWrapper;
5
  use openwa_core::rebase::rb;
6
- use openwa_core::task::{CTask, CTaskCloud, CTaskFire, CTaskMine, CTaskOilDrum, CTaskTeam, CTaskTurnGame, CTaskWorm};
7
 
8
  use crate::log;
9
 
@@ -482,6 +482,25 @@ impl DebugApp {
482
  ui.label("retreat_frm"); ui.label(format!("{}", (*tg).retreat_frames)); ui.end_row();
483
  });
484
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
485
  }
486
 
487
  // --- CTaskTeam-specific fields ---
@@ -491,8 +510,12 @@ impl DebugApp {
491
  .default_open(true)
492
  .show(ui, |ui| {
493
  egui::Grid::new("team_grid").striped(true).show(ui, |ui| {
494
- ui.label("team_index"); ui.label(format!("{}", (*team).team_index)); ui.end_row();
495
- ui.label("worm_count"); ui.label(format!("{}", (*team).worm_count)); ui.end_row();
 
 
 
 
496
  });
497
  });
498
  }
 
3
  use openwa_core::ddgame::DDGame;
4
  use openwa_core::ddgame_wrapper::DDGameWrapper;
5
  use openwa_core::rebase::rb;
6
+ use openwa_core::task::{CTask, CTaskCloud, CTaskFire, CTaskMine, CTaskOilDrum, CTaskTeam, CTaskTurnGame, CTaskWorm, TurnGameCtx};
7
 
8
  use crate::log;
9
 
 
482
  ui.label("retreat_frm"); ui.label(format!("{}", (*tg).retreat_frames)); ui.end_row();
483
  });
484
  });
485
+
486
+ let ctx = &(*tg).game_ctx as *const TurnGameCtx;
487
+ egui::CollapsingHeader::new("TurnGameCtx (+0x30)")
488
+ .default_open(false)
489
+ .show(ui, |ui| {
490
+ egui::Grid::new("ctx_grid").striped(true).show(ui, |ui| {
491
+ ui.label("land_height"); ui.label(format!("{:.1}", (*ctx).land_height.to_f32())); ui.end_row();
492
+ ui.label("land_height_2"); ui.label(format!("{:.1}", (*ctx).land_height_2.to_f32())); ui.end_row();
493
+ ui.label("sentinel_18"); ui.label(format!("{}", (*ctx)._sentinel_18)); ui.end_row();
494
+ ui.label("sentinel_28"); ui.label(format!("{}", (*ctx)._sentinel_28)); ui.end_row();
495
+ ui.label("sentinel_38"); ui.label(format!("{}", (*ctx)._sentinel_38)); ui.end_row();
496
+ ui.label("team_count"); ui.label(format!("{}", (*ctx).team_count)); ui.end_row();
497
+ ui.label("_slot_d0"); ui.label(format!("{}", (*ctx)._slot_d0)); ui.end_row();
498
+ let ta = (*ctx)._hud_textbox_a;
499
+ let tb = (*ctx)._hud_textbox_b;
500
+ ui.label("hud_tb_a"); ui.label(if ta == 0 { "(null)".into() } else { format!("{:#010X}", ta) }); ui.end_row();
501
+ ui.label("hud_tb_b"); ui.label(if tb == 0 { "(null)".into() } else { format!("{:#010X}", tb) }); ui.end_row();
502
+ });
503
+ });
504
  }
505
 
506
  // --- CTaskTeam-specific fields ---
 
510
  .default_open(true)
511
  .show(ui, |ui| {
512
  egui::Grid::new("team_grid").striped(true).show(ui, |ui| {
513
+ ui.label("team_index"); ui.label(format!("{}", (*team).team_index)); ui.end_row();
514
+ ui.label("alive_worms"); ui.label(format!("{}", (*team).alive_worm_count)); ui.end_row();
515
+ ui.label("worm_count"); ui.label(format!("{}", (*team).worm_count)); ui.end_row();
516
+ ui.label("last_weapon"); ui.label(format!("{}", (*team).last_launched_weapon)); ui.end_row();
517
+ ui.label("pos_x"); ui.label(format!("{:.2}", (*team).pos_x.to_f32())); ui.end_row();
518
+ ui.label("pos_y"); ui.label(format!("{:.2}", (*team).pos_y.to_f32())); ui.end_row();
519
  });
520
  });
521
  }