Start working on body part support for skin select

This commit is contained in:
Vortrex
2022-08-12 11:58:13 -05:00
parent 87fed4bce9
commit 82c3412598

View File

@@ -21,12 +21,24 @@ let skinSelectorIndex = 0;
let skinSelectPosition = null;
let skinSelectHeading = null;
let lastSkinSelectKeyPress = 0;
let skinSelectKeyPressCooldown = 250;
let skinSelectChoosingPart = AGRP_SKINSELECT_NONE;
let skinSelectBodyParts = {
[AGRP_SKINSELECT_HEAD]: [0, 0],
[AGRP_SKINSELECT_UPPER]: [0, 0],
[AGRP_SKINSELECT_LOWER]: [0, 0],
[AGRP_SKINSELECT_HAT]: [0, 0],
};
// ===========================================================================
function initSkinSelectScript() {
logToConsole(LOG_DEBUG, "[VRR.SkinSelect]: Initializing skin selector script ...");
skinSelectMessageFontTop = loadSkinSelectMessageFontTop();
skinSelectMessageFontBottom = loadSkinSelectMessageFontBottom();
skinSelectMessageFontBottomUpper = loadSkinSelectMessageFontBottom();
skinSelectMessageFontBottomLower = loadSkinSelectMessageFontBottom();
logToConsole(LOG_DEBUG, "[VRR.SkinSelect]: Skin selector script initialized!");
}
@@ -45,6 +57,13 @@ function loadSkinSelectMessageFontBottom() {
// ===========================================================================
function processSkinSelectKeyPress(keyCode) {
// Make sure they aren't spamming it (causes crashes)
if (sdl.ticks - lastSkinSelectKeyPress < skinSelectKeyPressCooldown) {
return false;
}
lastSkinSelectKeyPress = sdl.ticks;
if (usingSkinSelector) {
if (keyCode == SDLK_LEFT || keyCode == SDLK_A) {
if (skinSelectorIndex >= allowedSkins.length - 1) {
@@ -64,6 +83,15 @@ function processSkinSelectKeyPress(keyCode) {
logToConsole(LOG_DEBUG, `Switching to skin ${allowedSkins[skinSelectorIndex][1]} (Index: ${skinSelectorIndex}, Skin: ${allowedSkins[skinSelectorIndex][0]})`);
skinSelectMessageTextTop = allowedSkins[skinSelectorIndex][1];
setLocalPlayerSkin(allowedSkins[skinSelectorIndex][0]);
} else if (keyCode == SDLK_UP || keyCode == SDLK_W) {
if (skinSelectorIndex >= allowedSkins.length - 1) {
skinSelectorIndex = 1;
} else {
skinSelectorIndex = skinSelectorIndex + 1;
}
logToConsole(LOG_DEBUG, `Switching to skin ${allowedSkins[skinSelectorIndex][1]} (Index: ${skinSelectorIndex}, Skin: ${allowedSkins[skinSelectorIndex][0]})`);
skinSelectMessageTextTop = allowedSkins[skinSelectorIndex][1];
setLocalPlayerSkin(allowedSkins[skinSelectorIndex][0]);
} else if (keyCode == SDLK_RETURN) {
sendNetworkEventToServer("agrp.skinSelected", skinSelectorIndex);
toggleSkinSelect(false);
@@ -81,10 +109,13 @@ function processSkinSelectKeyPress(keyCode) {
function processSkinSelectRendering() {
if (usingSkinSelector) {
if (skinSelectMessageFontTop != null && skinSelectMessageFontBottom != null) {
if (skinSelectMessageTextTop != "" && skinSelectMessageTextBottom != "") {
if (skinSelectMessageFontTop != null && skinSelectMessageFontBottomUpper != null && skinSelectMessageFontBottomLower != null) {
if (skinSelectMessageTextTop != "" && skinSelectMessageTextBottomUpper != "" && skinSelectMessageTextBottomLower != "") {
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);
skinSelectMessageFontBottomUpper.render(skinSelectMessageTextBottomUpper, [0, game.height - 65], game.width, 0.5, 0.0, skinSelectMessageTextBottomUpper.size, skinSelectMessageColourBottom, true, true, false, true);
if (getGame() == AGRP_GAME_GTA_IV) {
skinSelectMessageFontBottomLower.render(skinSelectMessageTextBottomLower, [0, game.height - 65], game.width, 0.5, 0.0, skinSelectMessageTextBottomLower.size, skinSelectMessageColourBottom, true, true, false, true);
}
}
}
}