summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--world/map/npc/functions/barber.txt20
-rw-r--r--world/map/npc/functions/headstyles.txt21
-rw-r--r--world/map/npc/items/mirror.txt4
3 files changed, 26 insertions, 19 deletions
diff --git a/world/map/npc/functions/barber.txt b/world/map/npc/functions/barber.txt
index 0f9b4ffb..58fee175 100644
--- a/world/map/npc/functions/barber.txt
+++ b/world/map/npc/functions/barber.txt
@@ -19,9 +19,11 @@ L_Main:
set @color, getlook(LOOK_HAIR_COLOR);
set @style$, "Unknown";
set @color$, "Unknown";
- if (@style >= 0 && @style < 20)
- set @style$, @HairStyles$[@style];
- if (@color >= 0 && @color < 120)
+ if (@style >= 1 && @style <= 20)
+ set @style$, @HairStyles$[(@style - 1)];
+ if (Class > 1)
+ set @color, (@color - (15 * Class));
+ if (@color >= 0 && @color <= 15)
set @color$, @HairColors$[@color];
if (@color == 127)
set @color$, "Shocked White";
@@ -66,15 +68,15 @@ L_Style:
@HairStyles$[25], L_MenuItems;
L_MenuItems:
- if (@menu - 1 == @style)
+ if (@menu == @style)
goto L_SameStyle;
if(@menu == (getarraysize(@HairStyles$) - 1)) goto L_RandomStyle;
if(@menu == getarraysize(@HairStyles$)) goto L_Done;
- setlook LOOK_HAIR_STYLE, @menu - 1;
+ setlook LOOK_HAIR_STYLE, @menu;
goto L_Main;
L_RandomStyle:
- set @randomStyle, rand(0, (getarraysize(@HairStyles$) -4));
+ set @randomStyle, rand(1, (getarraysize(@HairStyles$) -4));
if(@randomStyle == @style) goto L_RandomStyle;
setlook LOOK_HAIR_STYLE, @randomStyle;
menu
@@ -87,7 +89,7 @@ L_SameStyle:
goto L_Main;
L_Color:
- if(@style == Class) goto L_SameColor; // first headstyle of any class is bald
+ if(@style == @BaldStyle) goto L_SameColor; // last headstyle of any class is bald
if(!@colorOpts) set @HairColors$[getarraysize(@HairColors$)], "Surprise me";
if(!@colorOpts) set @HairColors$[getarraysize(@HairColors$)], "Nah, I'm fine";
if(!@colorOpts) set @colorOpts, 1;
@@ -115,11 +117,11 @@ L_MenuItems1:
goto L_SameColor;
if(@menu == (getarraysize(@HairColors$) - 1)) goto L_RandomColor;
if(@menu == getarraysize(@HairColors$)) goto L_Done;
- setlook LOOK_HAIR_COLOR, ((@menu - 1) + (15 * Class));
+ setlook LOOK_HAIR_COLOR, ((@menu - 1) + (15 * (Class - 1)));
goto L_Main;
L_RandomColor:
- set @randomColor, rand((15 * Class), ((getarraysize(@HairColors$) -4) + (15 * Class)));
+ set @randomColor, rand((15 * (Class - 1)), ((getarraysize(@HairColors$) -4) + (15 * (Class - 1))));
if(@randomColor == @color) goto L_RandomColor;
setlook LOOK_HAIR_COLOR, @randomColor;
menu
diff --git a/world/map/npc/functions/headstyles.txt b/world/map/npc/functions/headstyles.txt
index 989bef83..91ed2cfe 100644
--- a/world/map/npc/functions/headstyles.txt
+++ b/world/map/npc/functions/headstyles.txt
@@ -5,15 +5,20 @@ function|script|getHeadStyles|,
{
set @HairStyles$, 0;
set @HairColors$, 0;
- set @BaseClass, 0; // this is the default class
+ set @BaseClass, 1; // this is the default class
cleararray @HairStyles$, "", getarraysize(@HairStyles$);
cleararray @HairColors$, "", getarraysize(@HairColors$);
cleararray @ValidClasses, "", getarraysize(@ValidClasses);
- setarray @ValidClasses, 0; // add new classes here
+ setarray @ValidClasses, 1; // add new classes here
set @loop, 0;
goto L_LoopValid;
- L_LoopValid:
+ L_Janitor:
+ set @BaldStyle, getarraysize(@HairStyles$); // we set it as a variable because we use it with the barber
+ if(getlook(LOOK_HAIR_STYLE) < 1) setlook LOOK_HAIR_STYLE, @BaldStyle; // the last head of any race has no hair/fins/whatever
+ return;
+
+ L_LoopValid: // here we fix non-existant classes
if(@ValidClasses[@loop] == Class) goto L_ValidClass;
set @loop, (@loop + 1);
if(@loop >= getarraysize(@ValidClasses)) goto L_FixClass;
@@ -24,18 +29,18 @@ function|script|getHeadStyles|,
goto L_ValidClass;
L_ValidClass:
- if(Class == 0)
+ if(Class == 1)
setarray @HairStyles$, // TALPONIAN (human)
- "Bald", "Flat ponytail", "Bowl cut", "Combed back", "Emo", "Mohawk",
+ "Flat ponytail", "Bowl cut", "Combed back", "Emo", "Mohawk",
"Pompadour", "Center parting/Short and slick", "Long and slick",
"Short and curly", "Pigtails", "Long and curly", "Parted",
"Perky ponytail", "Wave", "Mane", "Bun", "Shoulder Length Flick",
- "Fizzy", "Long and Clipped";
- if(Class == 0)
+ "Fizzy", "Long and Clipped", "Bald";
+ if(Class == 1)
setarray @HairColors$, // TALPONIAN (human)
"Brunette", "Green", "Dark red", "Light purple", "Gray", "Blonde",
"Teal", "Light red", "Blue", "Dark purple", "Black", "Pink",
"Brown";//, "(free slot)", "(free slot)";
// adding a new species is as simple as adding another if(Class == X) and adding the class to @ValidClasses
- return;
+ goto L_Janitor;
}
diff --git a/world/map/npc/items/mirror.txt b/world/map/npc/items/mirror.txt
index fc2ca69b..82aeb7a7 100644
--- a/world/map/npc/items/mirror.txt
+++ b/world/map/npc/items/mirror.txt
@@ -4,8 +4,8 @@ function|script|useMirror|,
goto L_Rand;
L_Rand:
- set @style, rand(0,(getarraysize(@HairStyles$) -2));
- set @color, rand((15 * Class),((getarraysize(@HairColors$) -2) + (15 * Class)));
+ set @style, rand(1,(getarraysize(@HairStyles$) -2));
+ set @color, rand((15 * (Class - 1)),((getarraysize(@HairColors$) -2) + (15 * (Class - 1))));
if((getlook(LOOK_HAIR_STYLE) == @style) || (getlook(LOOK_HAIR_COLOR) == @color))
goto L_Rand;
goto L_Proceed;