| 1449 | #if SOURCE_ENGINE < SE_ORANGEBOX |
| 1450 | class VKeyValuesSS_Helper {}; |
| 1451 | static bool VKeyValuesSS(CBaseEntity* pThisPtr, const char *pszKey, const char *pszValue, int offset) |
| 1452 | { |
| 1453 | void** this_ptr = *reinterpret_cast<void***>(&pThisPtr); |
| 1454 | void** vtable = *reinterpret_cast<void***>(pThisPtr); |
| 1455 | void* vfunc = vtable[offset]; |
| 1456 | |
| 1457 | union |
| 1458 | { |
| 1459 | bool (VKeyValuesSS_Helper::* mfpnew)(const char *, const char *); |
| 1460 | #ifndef PLATFORM_POSIX |
| 1461 | void* addr; |
| 1462 | } u; |
| 1463 | u.addr = vfunc; |
| 1464 | #else |
| 1465 | struct |
| 1466 | { |
| 1467 | void* addr; |
| 1468 | intptr_t adjustor; |
| 1469 | } s; |
| 1470 | } u; |
| 1471 | u.s.addr = vfunc; |
| 1472 | u.s.adjustor = 0; |
| 1473 | #endif |