#pragma once // İç header: MakroMotor bölünmüş TU'ları arasında paylaşılan Lua yardımcıları. // PUBLIC yüzey değil — yalnız motor/betik/src içinden kullanılır. Public header // (include/fiko/betik/makro_motor.hpp) DEĞİŞMEZ; l_* static üyeleri aile // dosyalarında tanımlanır, apiKur/olayKopruleriKur çekirdekte kalır. #include #include "fiko/cekirdek/olay.hpp" extern "C" { #include "lua.h" } namespace fiko::betik::makroic { // Olay adı → OlayTuru ordinal eşlemesi (fiko.olay.dinle için). struct OlayAdi { const char* ad; OlayTuru tur; }; inline constexpr OlayAdi OLAY_ADLARI[] = { {"VarlikEklendi", OlayTuru::VarlikEklendi}, {"VarlikSilindi", OlayTuru::VarlikSilindi}, {"DonusumDegisti", OlayTuru::DonusumDegisti}, {"BrepDegisti", OlayTuru::BrepDegisti}, {"GorunurlukDegisti", OlayTuru::GorunurlukDegisti}, {"RenkDegisti", OlayTuru::RenkDegisti}, {"SecimDegisti", OlayTuru::SecimDegisti}, {"KipDegisti", OlayTuru::KipDegisti}, {"VurguDegisti", OlayTuru::VurguDegisti}, {"GorevBasladi", OlayTuru::GorevBasladi}, {"GorevBitti", OlayTuru::GorevBitti}, {"OlcumEklendi", OlayTuru::OlcumEklendi}, {"OlcumSilindi", OlayTuru::OlcumSilindi}, {"WorkbenchDegisti", OlayTuru::WorkbenchDegisti}, {"SketchGirildi", OlayTuru::SketchGirildi}, {"SketchCikildi", OlayTuru::SketchCikildi}, {"ParametreDegisti", OlayTuru::ParametreDegisti}, {"HesaplamaBitti", OlayTuru::HesaplamaBitti}, {"CamIslemEklendi", OlayTuru::CamIslemEklendi}, {"CamIslemSilindi", OlayTuru::CamIslemSilindi}, {"CamYoluHesaplandi", OlayTuru::CamYoluHesaplandi}, {"AlanSecimYapildi", OlayTuru::AlanSecimYapildi}, {"AptYazildi", OlayTuru::AptYazildi}, {"RefSecimYapildi", OlayTuru::RefSecimYapildi}, {"OlcumSecimYapildi", OlayTuru::OlcumSecimYapildi}, {"AyarDegisti", OlayTuru::AyarDegisti}, {"KomutCalisti", OlayTuru::KomutCalisti}, {"AracKipiGirildi", OlayTuru::AracKipiGirildi}, {"AracKipiCikildi", OlayTuru::AracKipiCikildi}, }; inline int olayIndeksi(const char* ad) { for (const OlayAdi& o : OLAY_ADLARI) if (std::strcmp(o.ad, ad) == 0) return static_cast(o.tur); return -1; } // Olay köprüsü tablo doldurucularında ve *Islemler dönüşlerinde ortak alan yazımı. inline void alanYaz(lua_State* L, const char* ad, lua_Integer deger) { lua_pushinteger(L, deger); lua_setfield(L, -2, ad); } } // namespace fiko::betik::makroic