--- nono/lib/monitor.h 2026/04/29 17:04:54 1.1.1.1 +++ nono/lib/monitor.h 2026/04/29 17:05:08 1.1.1.2 @@ -4,6 +4,10 @@ // Licensed under nono-license.txt // +// +// モニタ管理 +// + #pragma once #include "geometric.h" @@ -40,6 +44,8 @@ static constexpr bool IS_MONITOR_MEMDUMP class Monitor; using MonitorCallback_t = void (Object::*)(Monitor *, TextScreen&); +#define ToMonitorCallback(f) static_cast(f) + // モニタコールバックを宣言するマクロ。 // 強制力はないけどヘッダで宣言するところで使うこと。 // コールバック関数の型が変わった時にコンパイルエラーで検出させるため。 @@ -96,6 +102,9 @@ class MonitorManager }; public: + MonitorManager(); + ~MonitorManager(); + // 現在登録されているモニターのリストを返す。 const std::vector& GetList() const { return list; } @@ -107,7 +116,7 @@ class MonitorManager return *mon; } } - assertmsg(false, "id=%d not found", id); + PANIC("id=%d not found", id); } // 指定された id を持つモニターを返す。 @@ -157,4 +166,4 @@ class MonitorManager bool fixed {}; }; -extern MonitorManager gMonitorManager; +extern MonitorManager *gMonitorManager;