Fix skin select

This commit is contained in:
Vortrex
2021-11-16 02:01:27 -06:00
parent fc9471b8de
commit ff0158d24d
2 changed files with 42 additions and 40 deletions

View File

@@ -59,4 +59,7 @@ let mouseCameraEnabled = false;
let currentPickup = false; let currentPickup = false;
// Pre-cache all allowed skins
let allowedSkins = getAllowedSkins(getGame());
// =========================================================================== // ===========================================================================

View File

@@ -10,7 +10,7 @@
let skinSelectMessageFontTop = null; let skinSelectMessageFontTop = null;
let skinSelectMessageFontBottom = null; let skinSelectMessageFontBottom = null;
let skinSelectMessageTextTop = "Skin Name"; let skinSelectMessageTextTop = "Skin Name";
let skinSelectMessageTextBottom = "Choose a skin using LEFT and RIGHT arrows. Use ENTER to finish or BACKSPACE to cancel."; let skinSelectMessageTextBottom = "Choose a skin using PAGEUP and PAGEDOWN keys. Use ENTER to finish or BACKSPACE to cancel.";
let skinSelectMessageColourTop = COLOUR_YELLOW; let skinSelectMessageColourTop = COLOUR_YELLOW;
let skinSelectMessageColourBottom = COLOUR_WHITE; let skinSelectMessageColourBottom = COLOUR_WHITE;
@@ -45,35 +45,34 @@ function loadSkinSelectMessageFontBottom() {
function processSkinSelectKeyPress(keyCode) { function processSkinSelectKeyPress(keyCode) {
if(usingSkinSelector) { if(usingSkinSelector) {
if(keyCode == SDLK_RIGHT || keyCode == SDLK_s) { if(keyCode == SDLK_PAGEUP) {
if(skinSelectorIndex >= allowedSkins[getGame()].length-1) { if(skinSelectorIndex >= allowedSkins.length-1) {
skinSelectorIndex = 0; skinSelectorIndex = 1;
} else { } else {
skinSelectorIndex++; skinSelectorIndex = skinSelectorIndex + 1;
} }
logToConsole(LOG_DEBUG, `Switching to skin ${allowedSkins[getGame()][skinSelectorIndex][1]} (Index: ${skinSelectorIndex}, Skin: ${allowedSkins[getGame()][skinSelectorIndex][0]})`); logToConsole(LOG_DEBUG, `Switching to skin ${allowedSkins[skinSelectorIndex][1]} (Index: ${skinSelectorIndex}, Skin: ${allowedSkins[skinSelectorIndex][0]})`);
skinSelectMessageTextTop = allowedSkins[getGame()][skinSelectorIndex][1]; skinSelectMessageTextTop = allowedSkins[skinSelectorIndex][1];
localPlayer.skin = allowedSkins[getGame()][skinSelectorIndex][0]; localPlayer.skin = allowedSkins[skinSelectorIndex][0];
localPlayer.position = skinSelectPosition; } else if(keyCode == SDLK_PAGEDOWN) {
localPlayer.heading = skinSelectHeading;
localPlayer.clearObjective();
} else if(keyCode == SDLK_LEFT || keyCode == SDLK_a) {
if(skinSelectorIndex <= 0) { if(skinSelectorIndex <= 0) {
skinSelectorIndex = allowedSkins[getGame()].length-1; skinSelectorIndex = allowedSkins.length-1;
} else { } else {
skinSelectorIndex--; skinSelectorIndex = skinSelectorIndex - 1;
} }
logToConsole(LOG_DEBUG, `Switching to skin ${allowedSkins[getGame()][skinSelectorIndex][1]} (Index: ${skinSelectorIndex}, Skin: ${allowedSkins[getGame()][skinSelectorIndex][0]})`); logToConsole(LOG_DEBUG, `Switching to skin ${allowedSkins[skinSelectorIndex][1]} (Index: ${skinSelectorIndex}, Skin: ${allowedSkins[skinSelectorIndex][0]})`);
skinSelectMessageTextTop = allowedSkins[getGame()][skinSelectorIndex][1]; skinSelectMessageTextTop = allowedSkins[skinSelectorIndex][1];
localPlayer.skin = allowedSkins[getGame()][skinSelectorIndex][0]; localPlayer.skin = allowedSkins[skinSelectorIndex][0];
localPlayer.position = skinSelectPosition;
localPlayer.heading = skinSelectHeading;
localPlayer.clearObjective();
} else if(keyCode == SDLK_RETURN) { } else if(keyCode == SDLK_RETURN) {
triggerNetworkEvent("vrr.skinSelected", skinSelectorIndex); triggerNetworkEvent("vrr.skinSelected", skinSelectorIndex);
toggleSkinSelect(false);
return true;
} else if(keyCode == SDLK_BACKSPACE) { } else if(keyCode == SDLK_BACKSPACE) {
triggerNetworkEvent("vrr.skinSelected", -1); triggerNetworkEvent("vrr.skinSelected", -1);
toggleSkinSelect(false);
return true;
} }
localPlayer.heading = skinSelectHeading;
} }
} }
@@ -82,16 +81,11 @@ function processSkinSelectKeyPress(keyCode) {
function processSkinSelectRendering() { function processSkinSelectRendering() {
if(usingSkinSelector) { if(usingSkinSelector) {
if(skinSelectMessageFontTop != null && skinSelectMessageFontBottom != null) { if(skinSelectMessageFontTop != null && skinSelectMessageFontBottom != null) {
//if(gta.game != GAME_GTA_VC) { if(skinSelectMessageTextTop != "" && skinSelectMessageTextBottom != "") {
skinSelectMessageFontTop.render(skinSelectMessageTextTop, [0, game.height-100], game.width, 0.5, 0.0, skinSelectMessageFontTop.size, skinSelectMessageColourTop, true, true, false, true); skinSelectMessageFontTop.render(skinSelectMessageTextTop, [0, game.height-100], game.width, 0.5, 0.0, skinSelectMessageFontTop.size, skinSelectMessageColourTop, true, true, false, true);
skinSelectMessageFontBottom.render(skinSelectMessageTextBottom, [0, game.height-65], game.width, 0.5, 0.0, skinSelectMessageFontBottom.size, skinSelectMessageColourBottom, true, true, false, true); skinSelectMessageFontBottom.render(skinSelectMessageTextBottom, [0, game.height-65], game.width, 0.5, 0.0, skinSelectMessageFontBottom.size, skinSelectMessageColourBottom, true, true, false, true);
//} }
} }
//if(getMultiplayerMod() == VRR_MPMOD_GTAC) {
// if(gta.game == GAME_GTA_III || gta.game == GAME_GTA_VC) {
// localPlayer.clearObjective();
// }
//}
} }
} }
@@ -99,31 +93,36 @@ function processSkinSelectRendering() {
function toggleSkinSelect(state) { function toggleSkinSelect(state) {
if(state) { if(state) {
skinSelectorIndex = 0; skinSelectorIndex = getAllowedSkinIndexFromSkin(localPlayer.skin);
usingSkinSelector = true; if(!skinSelectorIndex) {
skinSelectorIndex = 0;
}
let tempPosition = localPlayer.position; usingSkinSelector = true;
tempPosition.z += 0.5; skinSelectPosition = localPlayer.position;
let frontCameraPosition = getPosInFrontOfPos(tempPosition, localPlayer.heading, 3); skinSelectHeading = localPlayer.heading;
if(isCustomCameraSupported()) { if(isCustomCameraSupported()) {
let tempPosition = localPlayer.position;
tempPosition.z += 0.5;
let frontCameraPosition = getPosInFrontOfPos(tempPosition, localPlayer.heading, 3);
game.setCameraLookAt(frontCameraPosition, localPlayer.position, true); game.setCameraLookAt(frontCameraPosition, localPlayer.position, true);
} }
localPlayer.skin = allowedSkins[getGame()][skinSelectorIndex][0]; localPlayer.skin = allowedSkins[skinSelectorIndex][0];
skinSelectMessageTextTop = allowedSkins[skinSelectorIndex][1];
gui.showCursor(true, false); gui.showCursor(true, false);
localPlayer.invincible = true; //localPlayer.invincible = true;
localPlayer.setProofs(true, true, true, true, true); //localPlayer.setProofs(true, true, true, true, true);
localPlayer.collisionsEnabled = false; localPlayer.collisionsEnabled = false;
skinSelectPosition = localPlayer.position;
skinSelectHeading = localPlayer.heading;
} else { } else {
usingSkinSelector = false; usingSkinSelector = false;
//gta.restoreCamera(true); //game.restoreCamera(true);
gui.showCursor(false, true); gui.showCursor(false, true);
if(localPlayer) { if(localPlayer) {
localPlayer.invincible = false; //localPlayer.invincible = false;
localPlayer.setProofs(false, false, false, false, false); //localPlayer.setProofs(false, false, false, false, false);
localPlayer.collisionsEnabled = true; localPlayer.collisionsEnabled = true;
} }
} }