Автор | Сообщение |
YURA_111 UAC Sergeant Major
 | 722 |
 Doom Rate: 1.98 Posts quality: +128 |
Отправлено: 06.04.21 11:59:17 | | | ZZYZX пишет: | while updating the total monster count of the map accordingly |
....Sets or clears the FRIENDLY flag of the calling actor while updating the total monster count of the map accordingly. If the calling actor's health is 0 or below, the flag is merely changed, while the total monster count remains untouched......
Это работает и сейчас через A_changeflag | |
|
| |
JSO x UAC Sergeant Major
 | 684 |
 Doom Rate: 2.3 Posts quality: +288 |
Отправлено: 06.04.21 21:43:22 | | | Чисто обёртка -- похоже, просто чуть более безопасная.
Здесь есть исходный её код. Вызывает нативную CountAsKill(), код которой находится тут.
Разворачиваем обратным ходом. Третья ссылка: // Возвращает "true", только если актор учитывается в счётчике монстров и не является "другом".
bool CountsAsKill() const {
return (flags & MF_COUNTKILL) && !(flags & MF_FRIENDLY);
}
Вторая ссылка -- вызов нативной функции (на ум пришло сравнение «инверсия "extern"-кейворда»), то есть её можно пропустить, делает она всё равно ровно то же самое.
Первая ссылка:
void A_SetFriendly (bool set) {
// Если актор ДО преобразования жив и является учитываемым при подсчёте врагом, то временно исключаем его:
if (CountsAsKill() && health > 0)
level.total_monsters--;
// Устанавливаем/снимаем сам флаг:
bFriendly = set;
// Если актор ПОСЛЕ преобразования жив и является учитываемым при подсчёте врагом, то вставляем его в общее число врагов:
if (CountsAsKill() && health > 0)
level.total_monsters++;
}
Добавлено спустя 1 день 15 часов 20 минут 54 секунды:
ADD: нашёл обычную обработку флагов, 58 строк, вызывающих отдельные функции распознавания флага по переданной строке, нахождения этого флага среди всех, потенциального отлинковывания/отсоединения от игрового мира, изменения флага и потенциального прилинковывания актора обратно к миру. Зато универсальная.
Так что "A_SetFriendly( bool set )" -- элементарно огромное ускорение доступа к изменению флага. |
Рейтинг сообщения: +1, отметил(и): YURA_111 |
|
1 |
5 |
 |
|
| |
MaStErDommind - UAC Gunner -
 | 50 |
 Doom Rate: 2 Posts quality: +2 |
Отправлено: 08.04.21 17:31:10 | | | Заменил название, при запуске пишет, что карта MAP01 не найдена. | |
|
| |
ZZYZX - UAC Commissar -
 |  | 6084 |
 Doom Rate: 1.7 Posts quality: +1481 |
Отправлено: 08.04.21 20:41:39 | | | Так нижний MAP01 убери. | |
|
2 |
2 |
1 |
 |
|
| |
MaStErDommind - UAC Gunner -
 | 50 |
 Doom Rate: 2 Posts quality: +2 |
Отправлено: 08.04.21 21:18:47 | | | Если уберу, название останется прежним, а в zdoom.pk3 не изменяется. | |
|
| |