@@ -63,9 +63,10 @@ namespace ns_dd2 {
6363namespace sdk ::via {
6464
6565// Convenience aliases for the namespaced Window types.
66+ // The re3 regenny layout is for TDB < 69 (old RE3 build, DMC5). Current RE3 TDB70 uses RE2 layout.
6667namespace W {
6768 using re7 = ns_re7::regenny::via::Window;
68- using re3 = ns_re3::regenny::via::Window;
69+ using re3_tdb67 = ns_re3::regenny::via::Window;
6970 using re2 = ns_re2::regenny::via::Window;
7071 using mhrise = ns_mhrise::regenny::via::Window;
7172 using re8 = ns_re8::regenny::via::Window;
@@ -77,7 +78,7 @@ namespace W {
7778
7879namespace SV {
7980 using re7 = ns_re7::regenny::via::SceneView;
80- using re3 = ns_re3::regenny::via::SceneView;
81+ using re3_tdb67 = ns_re3::regenny::via::SceneView;
8182 using re2 = ns_re2::regenny::via::SceneView;
8283 using mhrise = ns_mhrise::regenny::via::SceneView;
8384 using re8 = ns_re8::regenny::via::SceneView;
@@ -94,9 +95,9 @@ namespace SV {
9495#define VIA_WIN_FIELD (w, field ) \
9596 switch (sdk::GameIdentity::get().game()) { \
9697 case sdk::GameID::RE7: \
97- case sdk::GameID::RE2: return ((W::re2*)(w))->field ; \
9898 case sdk::GameID::RE3: \
99- case sdk::GameID::DMC5: return ((W::re3*)(w))->field ; \
99+ case sdk::GameID::RE2: return ((W::re2*)(w))->field ; \
100+ case sdk::GameID::DMC5: return ((W::re3_tdb67*)(w))->field ; \
100101 case sdk::GameID::MHRISE: return ((W::mhrise*)(w))->field ; \
101102 case sdk::GameID::GGR: \
102103 case sdk::GameID::RE8: return ((W::re8*)(w))->field ; \
@@ -119,9 +120,9 @@ inline uint32_t& window_height(void* w) { VIA_WIN_FIELD(w, height); }
119120#define VIA_WIN_BORDERLESS (w, sub ) \
120121 switch (sdk::GameIdentity::get().game()) { \
121122 case sdk::GameID::RE7: \
122- case sdk::GameID::RE2: return ((W::re2*)(w))->borderless_size .sub ; \
123123 case sdk::GameID::RE3: \
124- case sdk::GameID::DMC5: return ((W::re3*)(w))->borderless_size .sub ; \
124+ case sdk::GameID::RE2: return ((W::re2*)(w))->borderless_size .sub ; \
125+ case sdk::GameID::DMC5: return ((W::re3_tdb67*)(w))->borderless_size .sub ; \
125126 case sdk::GameID::MHRISE: return ((W::mhrise*)(w))->borderless_size .sub ; \
126127 case sdk::GameID::GGR: \
127128 case sdk::GameID::RE8: return ((W::re8*)(w))->borderless_size .sub ; \
@@ -148,9 +149,9 @@ inline float& window_borderless_h(void* w) { VIA_WIN_BORDERLESS(w, h); }
148149inline void * sv_window (void * sv) {
149150 switch (sdk::GameIdentity::get ().game ()) {
150151 case sdk::GameID::RE7:
151- case sdk::GameID::RE2: return ((SV::re2*)sv)->window ;
152152 case sdk::GameID::RE3:
153- case sdk::GameID::DMC5: return ((SV::re3*)sv)->window ;
153+ case sdk::GameID::RE2: return ((SV::re2*)sv)->window ;
154+ case sdk::GameID::DMC5: return ((SV::re3_tdb67*)sv)->window ;
154155 case sdk::GameID::MHRISE: return ((SV::mhrise*)sv)->window ;
155156 case sdk::GameID::GGR:
156157 case sdk::GameID::RE8: return ((SV::re8*)sv)->window ;
@@ -171,9 +172,9 @@ inline void* sv_window(void* sv) {
171172#define VIA_SV_SIZE (sv, sub ) \
172173 switch (sdk::GameIdentity::get().game()) { \
173174 case sdk::GameID::RE7: \
174- case sdk::GameID::RE2: return ((SV::re2*)(sv))->size .sub ; \
175175 case sdk::GameID::RE3: \
176- case sdk::GameID::DMC5: return ((SV::re3*)(sv))->size .sub ; \
176+ case sdk::GameID::RE2: return ((SV::re2*)(sv))->size .sub ; \
177+ case sdk::GameID::DMC5: return ((SV::re3_tdb67*)(sv))->size .sub ; \
177178 case sdk::GameID::MHRISE: return ((SV::mhrise*)(sv))->size .sub ; \
178179 case sdk::GameID::GGR: \
179180 case sdk::GameID::RE8: return ((SV::re8*)(sv))->size .sub ; \
@@ -197,9 +198,9 @@ inline float& sv_size_h(void* sv) { VIA_SV_SIZE(sv, h); }
197198inline int32_t & sv_display_type (void * sv) {
198199 switch (sdk::GameIdentity::get ().game ()) {
199200 case sdk::GameID::RE7:
200- case sdk::GameID::RE2: return *(int32_t *)&((SV::re2*)sv)->display_type ;
201201 case sdk::GameID::RE3:
202- case sdk::GameID::DMC5: return *(int32_t *)&((SV::re3*)sv)->display_type ;
202+ case sdk::GameID::RE2: return *(int32_t *)&((SV::re2*)sv)->display_type ;
203+ case sdk::GameID::DMC5: return *(int32_t *)&((SV::re3_tdb67*)sv)->display_type ;
203204 case sdk::GameID::MHRISE: return *(int32_t *)&((SV::mhrise*)sv)->display_type ;
204205 case sdk::GameID::GGR:
205206 case sdk::GameID::RE8: return *(int32_t *)&((SV::re8*)sv)->display_type ;
@@ -220,9 +221,9 @@ inline size_t sv_display_type_offset() {
220221 #define SV_DT_OFF (T ) ((size_t )&((T*)nullptr )->display_type)
221222 switch (sdk::GameIdentity::get ().game ()) {
222223 case sdk::GameID::RE7:
223- case sdk::GameID::RE2: return SV_DT_OFF (SV::re2);
224224 case sdk::GameID::RE3:
225- case sdk::GameID::DMC5: return SV_DT_OFF (SV::re3);
225+ case sdk::GameID::RE2: return SV_DT_OFF (SV::re2);
226+ case sdk::GameID::DMC5: return SV_DT_OFF (SV::re3_tdb67);
226227 default : return SV_DT_OFF (SV::re9);
227228 }
228229 #undef SV_DT_OFF
0 commit comments