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 skinSelectPosition = null;
let skinSelectHeading = 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() { function initSkinSelectScript() {
logToConsole(LOG_DEBUG, "[VRR.SkinSelect]: Initializing skin selector script ..."); logToConsole(LOG_DEBUG, "[VRR.SkinSelect]: Initializing skin selector script ...");
skinSelectMessageFontTop = loadSkinSelectMessageFontTop(); skinSelectMessageFontTop = loadSkinSelectMessageFontTop();
skinSelectMessageFontBottom = loadSkinSelectMessageFontBottom(); skinSelectMessageFontBottomUpper = loadSkinSelectMessageFontBottom();
skinSelectMessageFontBottomLower = loadSkinSelectMessageFontBottom();
logToConsole(LOG_DEBUG, "[VRR.SkinSelect]: Skin selector script initialized!"); logToConsole(LOG_DEBUG, "[VRR.SkinSelect]: Skin selector script initialized!");
} }
@@ -45,6 +57,13 @@ function loadSkinSelectMessageFontBottom() {
// =========================================================================== // ===========================================================================
function processSkinSelectKeyPress(keyCode) { 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 (usingSkinSelector) {
if (keyCode == SDLK_LEFT || keyCode == SDLK_A) { if (keyCode == SDLK_LEFT || keyCode == SDLK_A) {
if (skinSelectorIndex >= allowedSkins.length - 1) { 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]})`); logToConsole(LOG_DEBUG, `Switching to skin ${allowedSkins[skinSelectorIndex][1]} (Index: ${skinSelectorIndex}, Skin: ${allowedSkins[skinSelectorIndex][0]})`);
skinSelectMessageTextTop = allowedSkins[skinSelectorIndex][1]; skinSelectMessageTextTop = allowedSkins[skinSelectorIndex][1];
setLocalPlayerSkin(allowedSkins[skinSelectorIndex][0]); 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) { } else if (keyCode == SDLK_RETURN) {
sendNetworkEventToServer("agrp.skinSelected", skinSelectorIndex); sendNetworkEventToServer("agrp.skinSelected", skinSelectorIndex);
toggleSkinSelect(false); toggleSkinSelect(false);
@@ -81,10 +109,13 @@ function processSkinSelectKeyPress(keyCode) {
function processSkinSelectRendering() { function processSkinSelectRendering() {
if (usingSkinSelector) { if (usingSkinSelector) {
if (skinSelectMessageFontTop != null && skinSelectMessageFontBottom != null) { if (skinSelectMessageFontTop != null && skinSelectMessageFontBottomUpper != null && skinSelectMessageFontBottomLower != null) {
if (skinSelectMessageTextTop != "" && skinSelectMessageTextBottom != "") { if (skinSelectMessageTextTop != "" && skinSelectMessageTextBottomUpper != "" && skinSelectMessageTextBottomLower != "") {
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); 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);
}
} }
} }
} }