fix(ui): finish retail stack selector polish
Keep the horizontal thumb at its raw pointer position so both endpoints are reachable, honor the stack entry's authored right alignment, and preserve PublicWeenieDesc plural names from CreateObject through the object table. Port retail's singular s/es fallback when no plural was sent. Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
parent
a20e5c68c7
commit
6005c51c4d
22 changed files with 233 additions and 36 deletions
|
|
@ -194,7 +194,10 @@ public static class CreateObject
|
|||
// an explicitly transmitted zero (the enum's undefined/default value).
|
||||
byte? RadarBlipColor = null,
|
||||
byte? RadarBehavior = null,
|
||||
byte? CombatUse = null);
|
||||
byte? CombatUse = null,
|
||||
// PublicWeenieDesc._plural_name, gated by WeenieHeader flag 0x1.
|
||||
// ACCWeenieObject::GetObjectName(NAME_APPROPRIATE) selects this for stacks.
|
||||
string? PluralName = null);
|
||||
|
||||
/// <summary>
|
||||
/// The relevant subset of the server-sent <c>MovementData</c> /
|
||||
|
|
@ -653,6 +656,7 @@ public static class CreateObject
|
|||
string? name = null;
|
||||
uint? itemType = null;
|
||||
uint weenieFlags = 0;
|
||||
string? pluralName = null;
|
||||
uint iconId = 0;
|
||||
uint weenieClassId = 0;
|
||||
int? wValue = null;
|
||||
|
|
@ -708,7 +712,7 @@ public static class CreateObject
|
|||
// bit field width
|
||||
// --------- ------------------ -----
|
||||
// 0x04000000 (objDescFlags) weenieFlags2 u32 (skip)
|
||||
// 0x00000001 PluralName String16L (skip)
|
||||
// 0x00000001 PluralName String16L CAPTURE
|
||||
// 0x00000002 ItemsCapacity u8 (skip)
|
||||
// 0x00000004 ContainersCapacity u8 (skip)
|
||||
// 0x00000100 AmmoType u16 (skip)
|
||||
|
|
@ -774,7 +778,7 @@ public static class CreateObject
|
|||
}
|
||||
|
||||
if ((weenieFlags & 0x00000001u) != 0) // PluralName
|
||||
_ = ReadString16L(body, ref pos);
|
||||
pluralName = ReadString16L(body, ref pos);
|
||||
|
||||
if ((weenieFlags & 0x00000002u) != 0) // ItemsCapacity u8
|
||||
{
|
||||
|
|
@ -969,7 +973,8 @@ public static class CreateObject
|
|||
Priority: wPriority, Structure: wStructure, MaxStructure: wMaxStructure,
|
||||
Workmanship: wWorkmanship,
|
||||
RadarBlipColor: radarBlipColor, RadarBehavior: radarBehavior,
|
||||
CombatUse: combatUse);
|
||||
CombatUse: combatUse,
|
||||
PluralName: pluralName);
|
||||
|
||||
// Local helper: if we ran out of fields past PhysicsData, still
|
||||
// return the useful prefix (guid/position/setup/animParts/textures/palettes/scale/motion).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue