diff --git a/saco/net/remoteplayer.cpp b/saco/net/remoteplayer.cpp index 6dbc516..178e554 100644 --- a/saco/net/remoteplayer.cpp +++ b/saco/net/remoteplayer.cpp @@ -46,7 +46,7 @@ void CRemotePlayer::ResetAllSyncAttributes() field_C = 0; field_1B4 = 0; field_1C5 = 2; - memset(field_C5, 0, sizeof(field_C5)); + memset(&field_C5, 0, sizeof(field_C5)); memset(field_19, 0, sizeof(field_19)); memset(field_AD, 0, sizeof(field_AD)); memset(field_8E, 0, sizeof(field_8E)); @@ -125,6 +125,26 @@ void CRemotePlayer::FUNC_10017570() //---------------------------------------------------- +BOOL CRemotePlayer::FUNC_100145F0() +{ + if(field_10A == 17 && field_C5.wVehicleID && field_C5.wVehicleID != INVALID_VEHICLE_ID && + field_C5.wVehicleID < (MAX_VEHICLES + 1000)) return TRUE; + + return FALSE; +} + +//---------------------------------------------------- + +BOOL CRemotePlayer::FUNC_10014620() +{ + if(field_10A == 17 && field_C5.wVehicleID && field_C5.wVehicleID != INVALID_VEHICLE_ID && + field_C5.wVehicleID >= MAX_VEHICLES && field_C5.wVehicleID < (MAX_VEHICLES + 1000)) return TRUE; + + return FALSE; +} + +//---------------------------------------------------- + void CRemotePlayer::FUNC_10016660() { if(field_1F9) { diff --git a/saco/net/remoteplayer.h b/saco/net/remoteplayer.h index 9335a78..d4542fa 100644 --- a/saco/net/remoteplayer.h +++ b/saco/net/remoteplayer.h @@ -21,7 +21,12 @@ public: char field_8E[31]; char field_AD[24]; - char field_C5[68]; + // one 68-byte block: ResetAllSyncAttributes memsets it whole + struct { + char _pad0[62]; + WORD wVehicleID; // 0x103 + char _pad1[4]; + } field_C5; char field_109; BYTE field_10A; char field_10B; @@ -64,6 +69,8 @@ public: void EnterVehicle(VEHICLEID VehicleID, BOOL bPassenger); void ExitVehicle(); + BOOL FUNC_100145F0(); // .text:100145F0 + BOOL FUNC_10014620(); // .text:10014620 void FUNC_10016660(); // .text:10016660 float FUNC_10016120(); // .text:10016120 void FUNC_10017530(); // .text:10017530