Primitive 0x0079 - Change Outfit

This primitive changes the outfit a Sim is wearing, either to one of the standard ones (everyday, swimwear, pjs, etc) or a custom outfit specified by GUID.


Use

There is no SimPe wizard for this instruction, so the following table details the meaning of each of the operands.

OperandDescriptionOperand Values
0 - bit 1 Controls where the Source for the outfit is Off: See bit 2
On: Stack Object
0 - bit 2 Controls where the Source for the outfit is Off: See bit 7
On: Use GUID in Ops4-7
0 - bit 3 Controls where Outfit Type is taken from Off: Use value in Op8
On: Use variable in Op1
0 - bit 4 Save
0 - bit 5 Rebuild
0 - bit 6 Clear GUID pointers in person data fields
0 - bit 7 Controls where the Source for the outfit is Off: Sim's Outfits
On: Use GUID in Temp0/1
0 - bit 8 Unused
1 Variable containing the Outfit Type (if Op0 bit3 is 1)
2 & 3 Qualifiers on the variable in operand 1
4 thru 7 GUID (for the GUID 0xAABBCCDD, Op4 contains 0xDD to Op7 contains 0xAA)
8 Outfit Type (if Op0 bit3 is 0) 0x00: Everyday
0x01: Naked
0x02: Swimwear
0x03: Gym
0x04: Formal
0x05: PJs
0x08: Maternity
0x0B: Underwear
0x0D: Outerwear
9 Variable containing the Target
10 & 11 Qualifiers on the variable in operand 9
12 thru 15 Unused

See Also


SimPe Code

// Decompiled with JetBrains decompiler
// Type: pjse.BhavNameWizards.WizPrim0x0079
// Assembly: pjse.coder.plugin, Version=4.0.3349.37576, Culture=neutral, PublicKeyToken=null

using SimPe.PackedFiles.Wrapper;
using System;

namespace pjse.BhavNameWizards
{
  public class WizPrim0x0079 : BhavWizPrim
  {
    public WizPrim0x0079(Instruction i)
      : base(i)
    {
    }

    protected override string Operands(bool lng)
    {
      byte[] o = new byte[16];
      ((byte[]) this.instruction.Operands).CopyTo((Array) o, 0);
      ((byte[]) this.instruction.Reserved1).CopyTo((Array) o, 8);
      string str1 = "";
      if (((int) o[0] & 16) != 0)
        str1 = str1 + Localization.GetString("bwp79_rebuild") + ", ";
      string str2 = str1 + (lng ? Localization.GetString("Target") + ": " : "") + this.dataOwner(lng, o[9], o[10], o[11]);
      if (lng)
      {
        string str3 = str2 + ", " + Localization.GetString("bwp_source") + ": ";
        string str4 = (((int) o[0] & 1) == 0 ? (((int) o[0] & 2) == 0 ? (((int) o[0] & 64) == 0 ? str3 + Localization.GetString("bwp79_self") : str3 + "GUID [" + this.dataOwner((byte) 8, (ushort) 0) + ",1]") : str3 + BhavWiz.FormatGUID(lng, o, 4)) : str3 + BhavWiz.dnStkOb()) + ", ";
        str2 = (((int) o[0] & 4) != 0 ? str4 + Localization.GetString("bwp79_outfitIndex") + ": " + this.dataOwner(o[1], o[2], o[3]) : str4 + Localization.GetString("bwp79_outfit") + ": " + BhavWiz.readStr(GS.BhavStr.PersonOutfits, (ushort) o[8])) + ", " + Localization.GetString("bwp79_personData") + ": " + (((int) o[0] & 32) != 0).ToString() + ", " + Localization.GetString("bwp79_save") + ": " + (((int) o[0] & 8) != 0).ToString();
      }
      return str2;
    }
  }
}