From d24b955d527e9e676a4e288b974704502b85558e Mon Sep 17 00:00:00 2001 From: Pax1601 Date: Thu, 7 Dec 2023 15:07:57 +0100 Subject: [PATCH] Multiple bugfixes --- client/src/constants/constants.ts | 22 +++++++++++----------- client/src/map/map.ts | 8 ++++++-- scripts/OlympusCommand.lua | 2 +- src/core/include/groundunit.h | 2 +- src/core/src/groundunit.cpp | 2 +- src/core/src/scheduler.cpp | 10 +++++----- 6 files changed, 25 insertions(+), 21 deletions(-) diff --git a/client/src/constants/constants.ts b/client/src/constants/constants.ts index 788b9511..a9552b16 100644 --- a/client/src/constants/constants.ts +++ b/client/src/constants/constants.ts @@ -67,70 +67,70 @@ export const minAltitudeValues: { [key: string]: number } = { Aircraft: 0, Helic export const maxAltitudeValues: { [key: string]: number } = { Aircraft: 50000, Helicopter: 10000 }; export const altitudeIncrements: { [key: string]: number } = { Aircraft: 500, Helicopter: 100 }; -export const minimapBoundaries = [ - [ // NTTR +export const minimapBoundaries = { + "Nevada": [ // NTTR new LatLng(39.7982463, -119.985425), new LatLng(34.4037128, -119.7806729), new LatLng(34.3483316, -112.4529351), new LatLng(39.7372411, -112.1130805), new LatLng(39.7982463, -119.985425) ], - [ // Syria + "Syria": [ // Syria new LatLng(37.3630556, 29.2686111), new LatLng(31.8472222, 29.8975), new LatLng(32.1358333, 42.1502778), new LatLng(37.7177778, 42.3716667), new LatLng(37.3630556, 29.2686111) ], - [ // Caucasus + "Caucasus": [ // Caucasus new LatLng(39.6170191, 27.634935), new LatLng(38.8735863, 47.1423108), new LatLng(47.3907982, 49.3101946), new LatLng(48.3955879, 26.7753625), new LatLng(39.6170191, 27.634935) ], - [ // Persian Gulf + "PersianGulf": [ // Persian Gulf new LatLng(32.9355285, 46.5623682), new LatLng(21.729393, 47.572675), new LatLng(21.8501348, 63.9734737), new LatLng(33.131584, 64.7313594), new LatLng(32.9355285, 46.5623682) ], - [ // Marianas + "MarianaIslands": [ // Marianas new LatLng(22.09, 135.0572222), new LatLng(10.5777778, 135.7477778), new LatLng(10.7725, 149.3918333), new LatLng(22.5127778, 149.5427778), new LatLng(22.09, 135.0572222) ], - [ // South Atlantic + "Falklands": [ // South Atlantic new LatLng(-49.097217, -79.418267), new LatLng(-56.874517,-79.418267), new LatLng(-56.874517, -43.316433), new LatLng(-49.097217, -43.316433), new LatLng(-49.097217, -79.418267) ], - [ // Normandy + "Normandy": [ // Normandy new LatLng(50.44, -3.29), new LatLng(48.12,-3.29), new LatLng(48.12, 3.70), new LatLng(50.44, 3.70), new LatLng(50.44, -3.29) ], - [ // Sinai + "SinaiMap": [ // Sinai new LatLng(34.312222, 28.523333), new LatLng(25.946944, 28.523333), new LatLng(25.946944, 36.897778), new LatLng(34.312222, 36.897778), new LatLng(34.312222, 28.523333) ] -]; +}; export const mapBounds = { "Syria": { bounds: new LatLngBounds([31.8472222, 29.8975], [37.7177778, 42.3716667]), zoom: 5 }, "MarianaIslands": { bounds: new LatLngBounds([10.5777778, 135.7477778], [22.5127778, 149.5427778]), zoom: 5 }, "Nevada": { bounds: new LatLngBounds([34.4037128, -119.7806729], [39.7372411, -112.1130805]), zoom: 5 }, - "PersianGulf": { bounds: new LatLngBounds([21.729393, 47.572675], [33.131584, 64.7313594]), zoom: 5 }, + "PersianGulf": { bounds: new LatLngBounds([21.729393, 47.572675], [33.131584, 64.7313594]), zoom: 4 }, "Caucasus": { bounds: new LatLngBounds([39.6170191, 27.634935], [47.3907982, 49.3101946]), zoom: 4 }, "Falklands": { bounds: new LatLngBounds([-49.097217, -79.418267], [-56.874517, -43.316433]), zoom: 3 }, "Normandy": { bounds: new LatLngBounds([50.44, -3.29], [48.12, 3.70]), zoom: 5 }, diff --git a/client/src/map/map.ts b/client/src/map/map.ts index f6694b71..70377a90 100644 --- a/client/src/map/map.ts +++ b/client/src/map/map.ts @@ -64,6 +64,7 @@ export class Map extends L.Map { #centerUnit: Unit | null = null; #miniMap: ClickableMiniMap | null = null; #miniMapLayerGroup: L.LayerGroup; + #miniMapPolyline: L.Polyline; #temporaryMarkers: TemporaryUnitMarker[] = []; #selecting: boolean = false; #isZooming: boolean = false; @@ -123,8 +124,8 @@ export class Map extends L.Map { /* Minimap */ var minimapLayer = new L.TileLayer(mapLayers[Object.keys(mapLayers)[0] as keyof typeof mapLayers].urlTemplate, { minZoom: 0, maxZoom: 13 }); this.#miniMapLayerGroup = new L.LayerGroup([minimapLayer]); - var miniMapPolyline = new L.Polyline(this.#getMinimapBoundaries(), { color: '#202831' }); - miniMapPolyline.addTo(this.#miniMapLayerGroup); + this.#miniMapPolyline = new L.Polyline([], { color: '#202831' }); + this.#miniMapPolyline.addTo(this.#miniMapLayerGroup); /* Scale */ //@ts-ignore TODO more hacking because the module is provided as a pure javascript module only @@ -418,6 +419,9 @@ export class Map extends L.Map { if (this.#miniMap) this.setView(e.latlng); }) + + const boundaries = this.#getMinimapBoundaries(); + this.#miniMapPolyline.setLatLngs(boundaries[theatre as keyof typeof boundaries]); } getMiniMapLayerGroup() { diff --git a/scripts/OlympusCommand.lua b/scripts/OlympusCommand.lua index 6fa83fa2..de512b73 100644 --- a/scripts/OlympusCommand.lua +++ b/scripts/OlympusCommand.lua @@ -513,7 +513,7 @@ function Olympus.removeFire (smokeName) end function Olympus.secondaries(vec3) - Olympus.randomDebrie(vec3) + Olympus.randomDebries(vec3) --trigger.action.explosion(vec3, 1) --for i = 1, 10 do -- timer.scheduleFunction(Olympus.randomDebries, vec3, timer.getTime() + math.random(0, 180)) diff --git a/src/core/include/groundunit.h b/src/core/include/groundunit.h index f84ee1f0..b77ef33b 100644 --- a/src/core/include/groundunit.h +++ b/src/core/include/groundunit.h @@ -1,7 +1,7 @@ #pragma once #include "unit.h" -#define GROUND_DEST_DIST_THR 100 +#define GROUND_DEST_DIST_THR 10 class GroundUnit : public Unit { diff --git a/src/core/src/groundunit.cpp b/src/core/src/groundunit.cpp index 9cb3b5b8..88a7ca63 100644 --- a/src/core/src/groundunit.cpp +++ b/src/core/src/groundunit.cpp @@ -228,7 +228,7 @@ void GroundUnit::AIloop() Geodesic::WGS84().Inverse(getPosition().lat, getPosition().lng, scatteredTargetPosition.lat, scatteredTargetPosition.lng, distance, bearing1, bearing2); /* Compute the scattered position applying a random scatter to the shot */ - double scatterDistance = distance * tan(10 /* degs */ * (ShotsScatter::LOW - shotsScatter) / 57.29577 + 2 /* degs */) * RANDOM_MINUS_ONE_TO_ONE; + double scatterDistance = distance * tan(10 /* degs */ * (ShotsScatter::LOW - shotsScatter) / 57.29577 + 2 / 57.29577 /* degs */) * RANDOM_MINUS_ONE_TO_ONE; Geodesic::WGS84().Direct(scatteredTargetPosition.lat, scatteredTargetPosition.lng, bearing1 + 90, scatterDistance, scatteredTargetPosition.lat, scatteredTargetPosition.lng); /* Recover the data from the database */ diff --git a/src/core/src/scheduler.cpp b/src/core/src/scheduler.cpp index 096b8c3f..42dca980 100644 --- a/src/core/src/scheduler.cpp +++ b/src/core/src/scheduler.cpp @@ -524,8 +524,8 @@ void Scheduler::handleRequest(string key, json::value value, string username, js Coords loc; loc.lat = lat; loc.lng = lng; Unit* unit = unitsManager->getGroupLeader(ID); if (unit != nullptr) { - unit->setState(State::BOMB_POINT); unit->setTargetPosition(loc); + unit->setState(State::BOMB_POINT); log(username + " tasked unit " + unit->getUnitName() + "(" + unit->getName() + ") to bomb a point", true); } } @@ -539,8 +539,8 @@ void Scheduler::handleRequest(string key, json::value value, string username, js Coords loc; loc.lat = lat; loc.lng = lng; Unit* unit = unitsManager->getGroupLeader(ID); if (unit != nullptr) { - unit->setState(State::CARPET_BOMB); unit->setTargetPosition(loc); + unit->setState(State::CARPET_BOMB); log(username + " tasked unit " + unit->getUnitName() + "(" + unit->getName() + ") to perform carpet bombing", true); } } @@ -555,8 +555,8 @@ void Scheduler::handleRequest(string key, json::value value, string username, js Coords loc; loc.lat = lat; loc.lng = lng; Unit* unit = unitsManager->getGroupLeader(ID); if (unit != nullptr) { - unit->setState(State::BOMB_BUILDING); unit->setTargetPosition(loc); + unit->setState(State::BOMB_BUILDING); } } /************************/ @@ -569,8 +569,8 @@ void Scheduler::handleRequest(string key, json::value value, string username, js Coords loc; loc.lat = lat; loc.lng = lng; Unit* unit = unitsManager->getGroupLeader(ID); if (unit != nullptr) { - unit->setState(State::FIRE_AT_AREA); unit->setTargetPosition(loc); + unit->setState(State::FIRE_AT_AREA); log(username + " tasked unit " + unit->getUnitName() + "(" + unit->getName() + ") to fire at area", true); } } @@ -585,8 +585,8 @@ void Scheduler::handleRequest(string key, json::value value, string username, js Coords loc; loc.lat = lat; loc.lng = lng; loc.alt = alt; Unit* unit = unitsManager->getGroupLeader(ID); if (unit != nullptr) { - unit->setState(State::SIMULATE_FIRE_FIGHT); unit->setTargetPosition(loc); + unit->setState(State::SIMULATE_FIRE_FIGHT); log(username + " tasked unit " + unit->getUnitName() + "(" + unit->getName() + ") to simulate a fire fight", true); } }