UnrealKaraulov / newbspguy

Goldsrc map viewer/editor without decompiling. Also can view .MDL models.
The Unlicense
69 stars 14 forks source link

Spawnflags renaming problem (FGD) #33

Closed Qwertyus3D closed 2 years ago

Qwertyus3D commented 2 years ago

Пример проблемы. Имеем такую организацию настроек энтити trigger_push:

@SolidClass base(Trigger, Angles) = trigger_push : "Player push trigger"
[
    spawnflags(flags) = 
    [ 
        1: "Once only" : 0 
        2: "Start off" : 0
        4: "Pushables affected" : 0
    ]
    speed(integer) : "Speed of push" : 40
]

Т. е. в основе энтить использует настройки классов Trigger и Angles, но поля spawnflags 1, 2 и 4 должны быть заменены указанным текстом + добавляется поле speed.

Для класса Trigger прописано следующее:

@BaseClass base(Target, Targetname) = Trigger
[
    master(string) : "Master (m.source/team_master name)" 
    delay(string) : "Delay before trigger" : "0"
    killtarget(string) : "Kill target"
    netname(string) : "Target path"
    sounds(string) : "Sound style"
    message(string) : "Message"
    spawnflags(flags) = 
    [ 
        1 : "Monsters can activate" : 0 
        2 : "No clients (players can't)" : 0 
        4 : "Pushables can activate" : 0 
    ]
]

Т. е. тоже указаны поля для значений спаунфлагов 1, 2 и 4, но по умолчанию пояснение спаунфлагов другое (связанное с тем, кто может активировать триггер). Проблема в том, что программа отображает именно дефолтное описание спаунфлагов для класса Trigger, а не то, которое соответствует энтити trigger_push.

UnrealKaraulov commented 2 years ago

@Qwertyus3D

У меня вроде как нормально отображается в последнем билде. Фикс не делал, кажется само пофиксилось ??

Qwertyus3D commented 2 years ago

Проверял самый свежий билд https://github.com/UnrealKaraulov/newbspguy/actions/runs/3541547049 и предыдущий, проблема присутствует.

UnrealKaraulov commented 2 years ago

image

Qwertyus3D commented 2 years ago

Возможно, FGD-файл другой. Где trigger_push не наследует спаунфлаги класса Trigger. Потому и проблемы нет :)

UnrealKaraulov commented 2 years ago

Да нет в halflife-cs.fgd практически то же самое, это скрин оттуда. halflife-cs.fgd.txt

Qwertyus3D commented 2 years ago

Приведу другой пример - monster_tripmine. Она во всех FGD вроде наследует спаунфлаги класса Monster. При этом у неё есть свой спаунфлаг:

[
    spawnflags(Flags) =
    [
        1 : "Instant on" : 1
    ]
]

А программа отображает спаунфлаг класса: Wait till seen.

Qwertyus3D commented 2 years ago

FGD выше не содержит спаунфлагов 1 и 2 для класса Trigger. Поэтому проблему не видно.

UnrealKaraulov commented 2 years ago

@Qwertyus3D https://github.com/UnrealKaraulov/newbspguy/commit/c42f15f5951a30d03b22954488bb6d8c401951cf

что-то сделал, не знаю будет ли работать

Qwertyus3D commented 2 years ago

Вроде работает :)