Start working on body part support for skin select
This commit is contained in:
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user