diff --git a/scripts/client/house.js b/scripts/client/house.js index 19631aad..47d4157e 100644 --- a/scripts/client/house.js +++ b/scripts/client/house.js @@ -22,37 +22,58 @@ class HouseData { // =========================================================================== function receiveHouseFromServer(houseId, entrancePosition, blipModel, pickupModel, hasInterior) { + logToConsole(LOG_DEBUG, `[VRR.House] Received house ${houseId} (${name}) from server`); + if(getGame() == VRR_GAME_GTA_IV) { if(getHouseData(houseId) != false) { + let houseData = getHouseData(houseId); + houseData.entrancePosition = entrancePosition; + houseData.blipModel = blipModel; + houseData.pickupModel = pickupModel; + houseData.hasInterior = hasInterior; + + logToConsole(LOG_DEBUG, `[VRR.House] House ${houseId} already exists. Checking blip ...`); if(blipModel == -1) { - natives.removeBlipAndClearIndex(getHouseData(houseId).blipId); - getHouseData(houseId).blipId = -1; - //houses.splice(getHouseData(houseId).index, 1); - //setAllHouseDataIndexes(); - } else { - if(getHouseData(houseId).blipId != -1) { - natives.setBlipCoordinates(getHouseData(houseId).blipId, getHouseData(houseId).entrancePosition); - natives.changeBlipSprite(getHouseData(houseId).blipId, getHouseData(houseId).blipModel); - //natives.changeBlipNameFromAscii(getHouseData(houseId).blipId, `${name.substr(0, 24)}${(name.length > 24) ? " ...": ""}`); + if(houseData.blipId != -1) { + logToConsole(LOG_DEBUG, `[VRR.House] House ${houseId}'s blip has been removed by the server`); + if(getGame() == VRR_GAME_GTA_IV) { + natives.removeBlipAndClearIndex(getHouseData(houseId).blipId); + } else { + destroyElement(getElementFromId(blipId)); + } + houseData.blipId = -1; } else { - let blipId = natives.addBlipForCoord(entrancePosition); - if(blipId) { - getHouseData(houseId).blipId = blipId; - natives.changeBlipSprite(blipId, blipModel); - natives.setBlipMarkerLongDistance(blipId, false); - } + logToConsole(LOG_DEBUG, `[VRR.House] House ${houseId}'s blip is unchanged`); + } + } else { + if(houseData.blipId != -1) { + logToConsole(LOG_DEBUG, `[VRR.House] House ${houseId}'s blip has been changed by the server`); + if(getGame() == VRR_GAME_GTA_IV) { + natives.setBlipCoordinates(houseData.blipId, houseData.entrancePosition); + natives.changeBlipSprite(houseData.blipId, houseData.blipModel); + natives.setBlipMarkerLongDistance(houseData.blipId, false); + natives.setBlipAsShortRange(houseData.blipId, true); + natives.changeBlipNameFromAscii(houseData.blipId, `${houseData.name.substr(0, 24)}${(houseData.name.length > 24) ? " ...": ""}`); + } + } else { + let blipId = createGameBlip(houseData.blipModel, houseData.entrancePosition, houseData.name); + if(blipId != -1) { + houseData.blipId = blipId; + } + logToConsole(LOG_DEBUG, `[VRR.House] House ${houseId}'s blip has been added by the server (Model ${blipModel}, ID ${blipId})`); } } } else { - let tempHouseData = new HouseData(houseId, entrancePosition, blipModel, pickupModel, hasInterior, hasItems); + logToConsole(LOG_DEBUG, `[VRR.House] House ${houseId} doesn't exist. Adding ...`); + let tempHouseData = new HouseData(houseId, entrancePosition, blipModel, pickupModel, hasInterior); if(blipModel != -1) { - let blipId = natives.addBlipForCoord(entrancePosition); - if(blipId) { + let blipId = createGameBlip(tempHouseData.blipModel, tempHouseData.entrancePosition, "House"); + if(blipId != -1) { tempHouseData.blipId = blipId; - natives.changeBlipSprite(blipId, blipModel); - natives.setBlipMarkerLongDistance(blipId, false); - //natives.changeBlipNameFromAscii(blipId, `${name.substr(0, 24)}${(name.length > 24) ? " ...": ""}`); } + logToConsole(LOG_DEBUG, `[VRR.House] House ${houseId}'s blip has been added by the server (Model ${blipModel}, ID ${blipId})`); + } else { + logToConsole(LOG_DEBUG, `[VRR.House] House ${houseId} has no blip.`); } houses.push(tempHouseData); setAllHouseDataIndexes(); @@ -66,9 +87,14 @@ function receiveHouseFromServer(houseId, entrancePosition, blipModel, pickupMode * @param {number} houseId - The ID of the house (initially provided by server) * @return {HouseData} The house's data (class instance) */ -function getHouseData(houseId) { - let tempHouseData = houses.find((h) => h.houseId == houseId); - return (typeof tempHouseData != "undefined") ? tempHouseData : false; + function getHouseData(houseId) { + for(let i in houses) { + if(houses[i].houseId == houseId) { + return houses[i]; + } + } + + return false; } // ===========================================================================