Правила форума

Правила, действующие в этом форуме и всех его подфорумах:

1) Запрещена реклама в любых её проявлениях (сразу бан без предупреждения)!
2) Мат тоже не приветствуется на форуме, но иногда можно выразить свои чувства ( лучше заменяйте матные слова точками, пробелами, другими буквами)!
3) Категорически запрещается унижать, посылать, издеваться над участниками форума! Мы здесь все - одна большая и дружная семья! Поэтому за нарушение этого правила автоматически будем банить!
4) Разрешены ссылки на информацию, которые относятся к тому или иному разделу форума!
5) Ссылки не в тему будут удаляться и пользователь получит предупреждение или будет забанен!
6) Пользователям разрешено задавать любые вопросы относящиеся к теме, а мы все дружно ответим на эти вопросы. А также отвечать на вопросы и высказывать своё мнение.
7) Повторные темы, которые будут создаваться, будут удалены! Создавайте темы, удостоверившись, что такой темы нет на форуме!
8) Запрещён флуд во всех его проявлениях, сообщения не по теме, сообщения состоящие из одного или нескольких смайликов без текста, сообщения типа - Вах!, Рулез!, Круто! и т.п. Пользуйтесь пожалуйста кнопкой [EDIT], не плодите бессодержательные сообщения.
9) Использование смайликов разрешается не более 3-х подряд!

Добро пожаловать на наш форум!



Ответить на тему  [ Сообщений: 1386 ]  На страницу Пред.  1 ... 11, 12, 13, 14, 15, 16, 17 ... 47  След.
3DO Doom sources released 
Автор Сообщение
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus писал(а):
static Byte SongLookup[] = {
0,
11, /* Intro */
12, /* Final */
3, /* Bunny */
5, /* Intermission */
5, 6, 7, 8, 9,10,11,12,13,14, /* Map 1 */
15, 5, 6, 7, 8, 9,10,11,13,14,
15,10,12,29, 1, 1, 1, 1, 1, 1,
1
};

и т.д всё написано далее в приведённом куске исходника
Я всё понимаю, но это извращение из извращений :facepalm: ....пошёл стучаться об стену головой...

Т.е получается так
typedef enum {      /* All the sounds in the game */
   Song_None,
   Song_intro,
   Song_final,
   Song_bunny,
   Song_intermission,
   Song_e1m1,
   NUMMUSIC=Song_e1m1+24      /* Song count */
} musicnum_t;


перечисляемый тип данных поэтому

typedef enum {      /* All the sounds in the game */
   0, ///Song_None=0, нет музыки
   1, ///Song_intro=1, вступительная музыка
   2, ///Song_final=2, победная музыка
   3, ///Song_bunny=3, что это за музыка?? :)))
   4, ///Song_intermission=4, какая-то промежуточная музыка
   5, ///Song_e1m1=5, номер муз.трека уровня
   6 ///NUMMUSIC=Song_e1m1+24      /* Song count */ хитрое исчиление
} musicnum_t;  :du_ma_et:


Versus писал(а):
S_StartSong(Song_e1m1-1+gamemap,TRUE);

:sh_ok: окончательно запутался так и не поняв как получится номер файла Song5...Song8

Последний раз редактировалось Author 29 июн 2015, 12:05, всего редактировалось 1 раз.



29 июн 2015, 11:45
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Я не помню, а они фактически есть в игре? Играют?
Для Song5 получается мы должны вызвать:
SongLookup[5] или SongLookup[6] или SongLookup[16].
Для этого выражение
S_StartSong(5-1+gamemap,TRUE) должно получать эти цифры.

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


29 июн 2015, 11:56
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus писал(а):
Я не помню, а они фактически есть в игре? Играют?

Да, они звучат на уровнях. Названия файлов именно такие.

Не понятно как в S_StartSong(Song_e1m1-1+gamemap,TRUE) при gamemap скажем больше 5 получится трек Song5???


29 июн 2015, 12:07
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Song5 - это 5-1+12=16. То есть, он играет на 12 уровне. :nez-nayu:

Добавлено спустя 15 минут 48 секунд:
Versus писал(а):
NUMMUSIC=Song_e1m1+24

Путаница из-за того, что в перечисляемом типе не написаны все треки. Общее их количество 5+24!

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


29 июн 2015, 12:13
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus, можешь выложить файл исходника откуда ты эти куски привёл?


29 июн 2015, 12:30
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Вот. А все вызовы функции S_StartSong находятся уже в разных файлах.


Вложения

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.
29 июн 2015, 12:40
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus, в общем лучше в дебаггере смотреть какие значения приходят и что выбирается по ним.
В SongLookup 36 значений. Что значит коментарий /*Map 1 */ я так и не врубился, то ли он для всей строки, то ли для первого значения т.е. "5", что значило бы на первом уровне играет 5 мелодия, тогда на 6 уровне должна играть 10, а её нет. Надо весь исходник смотреть видимо.


29 июн 2015, 16:55
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Дебаггером пользоваться я вообще не умею...

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


29 июн 2015, 17:14
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus, да в этом ничего сложного нет, но вот как это сделать с приложением, которое должно запускаться не на ПК вопрос хороший. В среде разработки, после сборки программы (компиляции) и запуска или до этого в интересующих участках исходного кода ставятся точки останова напротив строки, где мы хотим посмотреть промежуточные результаты каких либо вычислений в программе. Начинаем выполнение программы (запускаем игру) и как только мы достигнем точки останова выполнение проги прерывается и мы может залезть в содержимое переменных. Но это когда прога/игра на ПК запускается. Для наших целей видимо нужен DEV kit или эмуль со спец.возможностями.

Как вариант ты можешь сохранить файл с данными в NVram (раз сейвы удалось добавить) в который скинешь, что передаётся в S_StartSong и как это было вычислено (т.е значения формирующиеся до вызова S_StartSong(5-1+gamemap,TRUE).
Либо пробовать методом тыка менять значения в SongLookUp.Либо в перечисляемом типе musicnum_t изменить NUMMUSIC=Song_e1m1+24 на NUMMUSIC=Song_e1m1+25 и добавить в папку с музыкой трек с именем SONG9. Затем проверить поменялся ли где-то звук?


30 июн 2015, 11:41
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Author
На счёт NVRAM мне уже приходила мысль, но что именно туда писать? В какие моменты? Пока вплотную не брался за музыку, может, удастся раскурить и без дебаггера.

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


30 июн 2015, 11:57
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus писал(а):
На счёт NVRAM мне уже приходила мысль, но что именно туда писать?

Пиши туда содержимое переменной music_id и по возможности значение Song_e1m1 (хотя вероятно оно всегда 5) вместе с NUMMUSIC.

Versus писал(а):
В какие моменты?

Скидывание в файл вероятно следует разместить в процедуре S_StartSong перед строкой PlaySong(SongLookup[music_id]) файл sound.c, можно и после этой строки. Тогда информация в файл будет скидываться при старте мелодий (т.е. в начале уровня или входе в главное меню).

Чтобы знать, откуда произошёл вызов процедуры S_StartSong с этими параметрами желательно в этот же файл писать текст типа "главное меню", "загрузка уровня", для этого придётся найти все обращения к этой процедуре в исходнике. Но, если это сложно сделать можно ограничиться параметрами.


30 июн 2015, 12:40
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Итак, не потребовался такой дебаггер, все укладывается в то, что я написал раньше.
Level 1: S_StartSong(5-1+1) ---> SongLookup[5]=5 ----> Song5.
Level 2: S_StartSong(5-1+2) ---> SongLookup[6]=6 ----> Song6.
Level 3: S_StartSong(5-1+3) ---> SongLookup[7]=7 ----> Song7.
Level 4: S_StartSong(5-1+4) ---> SongLookup[8]=8 ----> Song8.
Level 5: S_StartSong(5-1+5) ---> SongLookup[9]=9 ----> Song9.
Level 6: S_StartSong(5-1+6) ---> SongLookup[10]=10 ----> Song10.
Level 7: S_StartSong(5-1+7) ---> SongLookup[11]=11 ----> Song11.
Level 8: S_StartSong(5-1+8) ---> SongLookup[12]=12 ----> Song12.
Level 9: S_StartSong(5-1+9) ---> SongLookup[13]=13 ----> Song13.
Level 10: S_StartSong(5-1+10) ---> SongLookup[14]=14 ----> Song14.
Level 11: S_StartSong(5-1+11) ---> SongLookup[15]=15 ----> Song15.
Level 12: S_StartSong(5-1+12) ---> SongLookup[16]=5 ----> Song5.
Level 13: S_StartSong(5-1+13) ---> SongLookup[17]=6 ----> Song6.
Level 14: S_StartSong(5-1+14) ---> SongLookup[18]=7 ----> Song7.
Level 15: S_StartSong(5-1+15) ---> SongLookup[19]=8 ----> Song8.
Level 16: S_StartSong(5-1+16) ---> SongLookup[20]=9 ----> Song9.
Level 17: S_StartSong(5-1+17) ---> SongLookup[21]=10 ----> Song10.
Level 18: S_StartSong(5-1+18) ---> SongLookup[22]=11 ----> Song11.
Level 19: S_StartSong(5-1+19) ---> SongLookup[23]=13 ----> Song13.
Level 20: S_StartSong(5-1+20) ---> SongLookup[24]=14 ----> Song14.
Level 21: S_StartSong(5-1+21) ---> SongLookup[25]=15 ----> Song15.
Level 22: S_StartSong(5-1+22) ---> SongLookup[26]=10 ----> Song10.
Level 23: S_StartSong(5-1+23) ---> SongLookup[27]=12 ----> Song12.
Level 24 (secret): S_StartSong(5-1+24) ---> SongLookup[28]=29 ----> Song29.

Музыка в меню:
Song_intro = 1 ---> SongLookup[1]=11 ---> Song11.

Музыка финальная:
Song_final = 2 ---> SongLookup[2]=12 ---> Song12.

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


30 июн 2015, 14:41
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus, в ресурсах игры действительно есть все эти файлы?Если эти файлы есть, то добавить новый ресурс просто

static Byte SongLookup[] = {
0,
11, /* Intro */
12, /* Final */
3, /* Bunny */
5, /* Intermission */
******* ниже первая цифра номер мелодии для уровня 1, далее для 2го и т.д
5, 6, 7, 8, 9,10,11,12,13,14, /* Map 1 */
15, 5, 6, 7, 8, 9,10,11,13,14,
15,10,12,29, 1, 1, 1, 1, 1, 1,
1
};

Допустим на уровень 3 мы решили вставить новую музыку.
Создаём файл Song30 (главное чтобы номер не занят был) и меняем образец на такой

static Byte SongLookup[] = {
0,
11, /* Intro */
12, /* Final */
3, /* Bunny */
5, /* Intermission */
******* заменили озвучку 3го уровня на 30
5, 6, 30, 8, 9,10,11,12,13,14, /* Map 1 */
15, 5, 6, 7, 8, 9,10,11,13,14,
15,10,12,29, 1, 1, 1, 1, 1, 1,
1
};
Файл кидаем в папку ресурсов игры к остальным SONG'ам, собираем новый билд игры и по идее всё будет работать.


30 июн 2015, 15:58
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Да, все эти файлы есть. Как ты написал, я уже пробовал, все работает. SongLookup[] можно ведь и больше сделать. Обнаружилась проблемка с сохранениями. Вернее, недоработка. Нужно вырубить возможность сейва, когда мы закончили уровень 23. А то получается, что при последующей загрузке запускается секретный уровень 24. :-(
И еще. Даже в оригинале после окончания 22 уровня не пишется Entering Dis. Надо как-то пофиксить.

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


30 июн 2015, 16:26
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus писал(а):
SongLookup[] можно ведь и больше сделать


Для чего? У меня только вариант с увеличением количества уровней. :nez-nayu:

Versus писал(а):
А то получается, что при последующей загрузке запускается секретный уровень 24.

Ну, это не баг, а фича! Своего рода награда за прохождение всей игры. Игрок видит финальный экран, делает сейв, а потом решив его вдруг загрузить попадает в секретный уровень. А так-то выпилить это не проблема судя по всему.

Поздравляю с подвижкой в замене музыки!


30 июн 2015, 16:41
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Author писал(а):
У меня только вариант с увеличением количества уровней.

Ну да... Я все-таки надеюсь на победу над REZFILE. Произойдет когда-нибудь это или нет? :nez-nayu:
Author писал(а):
Ну, это не баг, а фича!

Кстати, да, не подумал об этом. :co_ol:
Author писал(а):
Поздравляю с подвижкой в замене музыки!

Спасибо!

Добавлено спустя 58 минут 58 секунд:
Versus писал(а):
Даже в оригинале после окончания 22 уровня не пишется Entering Dis. Надо как-то пофиксить.

Пофиксил. Странно, Ребекка написала все правильно, а почему-то не работало... :du_ma_et:
И оставил возможность выбора 24 уровня из главного меню, когда мы его прошли. Мне кажется, что так будет честно.

Добавлено спустя 5 часов 5 минут 31 секунду:
Уточню. После прохождения игры без захода в секретный уровень максимально возможный уровень для выбора из главного меню - 23. А если мы прошли (получили доступ) секретный уровень, то максимально возможный уровень для выбора 24.

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


30 июн 2015, 16:44
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus писал(а):
И оставил возможность выбора 24 уровня из главного меню, когда мы его прошли. Мне кажется, что так будет честно.

Мне нравится эта идея, так действительно честно по отношению к игроку :)


01 июл 2015, 11:08
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Хм... Косячокс... Дело в том, что когда мы делаем возможным выбор 24 уровня из меню после его прохождения, то тем самым открываем доступ ко всем НЕПРОЙДЕННЫМ уровням 4-23. Неправильно это. Придется возвращать назад. Ну, или извращаться и делать возможным выбор уровня 1-3, 24. Хз, как это делать...

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


01 июл 2015, 11:52
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus, не понял про уровни. 24 открывается после чего?


02 июл 2015, 13:56
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Author
Когда мы проходим секретный 24 и сохраняемся в конце уровня, то он становится доступным для выбора. Но вот только получается, что мы можем теперь перелистать уровни назад и запустить любой, хотя до этого прошли только 3.

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


02 июл 2015, 14:19
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus, если возможно покажи кусок кода, который за сейв этого хозяйства отвечает и за загрузку тоже, т.е. там, где параметры пройденных уровней сохраняются.


02 июл 2015, 14:29
Профиль
В сети
Аватара пользователя
Консольный монстр
Консольный монстр

Группа: Разработчики
Сообщения: 2136
Регистрация: 21 окт 2011, 21:37
Откуда: Слобожанщина, 31Rus
Модель 3DO: GoldStar GDO-101M
Ответить с цитатой

На секретный уровень, если нужно, там выходить если идти прямо после открытия первой двери в третьем уровне, для этого надо пойти сразу влево и после того как... Блин, легче показать...



02 июл 2015, 16:52
Профиль WWW
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Author
Вопрос комплексный. По умолчанию (то есть, в оригинале) уровень сохраняется в NVRAM, когда пройден. Вроде, все так, но у меня ситуация уже другая. Когда просто проходишь и сохраняешь игру, все работает четко. Но представим, что мы потерли файл DoomPrefs и оставили наш DoomSave. Тогда при первом запуске игры у нас доступен только первый уровень. Но, когда мы загружаем игру, то нам нужно обновить DoomPrefs нашими загружаемыми параметрами. Итого, имеем:
Приравниваем максимально доступный уровень из меню текущему уровню загружаемой игры. Но когда мы загружаем сохранение уровня 24, получается, что мы открываем на него доступ.
Вот одна из моих вставок:
void G_InitNew_LOAD(skill_t skill,Word map)
{
   Randomize();      /* Reset the random number generator */
   ReadPrefsFile();   /*Read params from PrefsFile. I need only MaxLevel value */
   ReadSaveFile();      /*Override params loaded*/

/* Force players to be initialized upon first level load */

   players.playerstate = PST_LOAD;
   players.mo = 0;   /* For net consistancy checks */
   
   DemoRecording = FALSE;      /* No demo in progress */
   DemoPlayback = FALSE;

   if (skill == sk_nightmare ) {      /* Hack for really BAD monsters */
      states[S_SARG_ATK1].Time = 2*4;   /* Speed up the demons */
      states[S_SARG_ATK2].Time = 2*4;
      states[S_SARG_ATK3].Time = 2*4;
      mobjinfo[MT_SERGEANT].Speed = 15;
      mobjinfo[MT_SHADOWS].Speed = 15;
      mobjinfo[MT_BRUISERSHOT].Speed = 40;   /* Baron of hell */
      mobjinfo[MT_HEADSHOT].Speed = 40;      /* Cacodemon */
      mobjinfo[MT_TROOPSHOT].Speed = 40;
   } else {
      states[S_SARG_ATK1].Time = 4*4;      /* Set everyone back to normal */
      states[S_SARG_ATK2].Time = 4*4;
      states[S_SARG_ATK3].Time = 4*4;
      mobjinfo[MT_SERGEANT].Speed = 8;
      mobjinfo[MT_SHADOWS].Speed = 8;
      mobjinfo[MT_BRUISERSHOT].Speed = 30;
      mobjinfo[MT_HEADSHOT].Speed = 20;
      mobjinfo[MT_TROOPSHOT].Speed = 20;
   }
   StartMap = gamemap;
   StartSkill = gameskill;
      if (MaxLevel<gamemap){
         MaxLevel = gamemap;
      }

           if (gamemap == 24) {
         MaxLevel = 3;     ВОТ ТУТ НУЖНО ПРОПИСАТЬ ПРАВИЛЬНО!!!!
         StartMap = 3;     ЭТОТ КОД НЕПОЛНЫЙ!
      }
   WritePrefsFile();
}

А вот ядро логики загружаемых уровней.
/**********************************

   The game should already have been initialized or loaded

**********************************/

void G_RunGame(void)
{
   for (;;) {

   /* Run a level until death or completion */

      MiniLoop(P_Start,P_Stop,P_Ticker,P_Drawer);

   /* Take away cards and stuff */

      G_PlayerFinishLevel();
      if ((gameaction == ga_died) ||   /* died, so restart the level */
         (gameaction == ga_warped)) {   /* skip intermission */
         continue;
      }

   /* decide which level to go to next */

      if (gameaction == ga_secretexit) {
          nextmap = 24;   /* Go to the secret level */
      } else {
         switch (gamemap) {
         case 24:      /* Secret level? */
            nextmap = 4;
            break;
         case 23:      /* Final level! */
            nextmap = 23;
            break;      /* Don't add secret level to prefs */
         default:
            nextmap = gamemap+1;
         }
         if (nextmap>MaxLevel) {
            MaxLevel = nextmap;   /* Save the prefs file */
            WritePrefsFile();
         }
      }

   /* Run a stats intermission */

      MiniLoop(IN_Start,IN_Stop,IN_Ticker,IN_Drawer);

   /* Run the finale if needed */

      if (gamemap == 23) {
         MiniLoop(F_Start,F_Stop,F_Ticker,F_Drawer);
         return;      /* Exit */
      }
      gamemap = nextmap;
   }
}


Добавлено спустя 46 минут 54 секунды:
Сделал так:
if (MaxLevel > gamemap) {
         MaxLevel = MaxLevel;
      }
      
      if (MaxLevel<=gamemap){
         MaxLevel = gamemap;
      }
      
      if (gamemap == 24) {
         MaxLevel = 3;
         StartMap = 3;
      }
   WritePrefsFile();

Вроде, работает. Криво, но часто эта фигня не вызывается, поэтому можно забить. Правда, палево получается. Третий уровень намекает, что выход на 24 находится там. А как иначе сделать?

Добавлено спустя 58 минут 49 секунд:
Yaranga
Выходить-то известно как. Задача - что делать с параметрами игрока после.

Добавлено спустя 3 часа 2 минуты 43 секунды:
Появился околовсяческий вопрос. Как использовать внешний asm файл в своем c# проекте?

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


02 июл 2015, 20:18
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus писал(а):
if (MaxLevel > gamemap) {
MaxLevel = MaxLevel; //// это точно правильно?? если да, то этот кусок вообще можно выбросить ибо ничего не меняется в переменной. }

if (MaxLevel<=gamemap){
MaxLevel = gamemap;
}

if (gamemap == 24) {
MaxLevel = 3; /// может замененить на 1???
StartMap = 3;
}


03 июл 2015, 11:17
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

А как тогда? Просто пустые скобки без MaxLevel = MaxLevel; оставить?
ОК, поменяю на 1. Тогда нужно и StartMap = 1;

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


03 июл 2015, 11:20
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus писал(а):
Просто пустые скобки без MaxLevel = MaxLevel; оставить?

можно вообще это условие убрать

Versus писал(а):
Тогда нужно и StartMap = 1;

А не получится, что после выхода на 24 уровень мы потеряем доступ к пройденному 3му?


03 июл 2015, 11:50
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Author писал(а):
А не получится, что после выхода на 24 уровень мы потеряем доступ к пройденному 3му?

Нет. У нас идет отработка ситуации, когда в файле настроек информация противоречит загружаемому уровню. Здесь нам сразу же нужно подкорректировать файл настроек. При загрузке на 24 уровень мы и корректируем его, назначая доступным для выбора только первый уровень. А если уже много уровней открыто (первое мое условие), то ничего не меняем.
Author писал(а):
можно вообще это условие убрать

Почему-то без него корректно не работало. :du_ma_et:

Добавлено спустя 11 часов 56 минут 22 секунды:
Просьба потестировать образ (подписан).
-Работают сохранения.
-Добавлена музыка (на каждом уровне своя, музыка финальных титров и между уровнями). Оригинальная тоже присутствует вся.
-Тест записи демок работает по кнопке С на Load game, Заканчиваем запись демки по кнопке Start. Потом демка циклически повторяется. Файл деморолика также сохраняется в NVRAM. Чтение демки из памяти приставки пока не работает. Планирую делать проигрывание демки из памяти, скажем, кнопкой B на Load game.
-Работает остановка чтения музыки, когда громкость установлена на ноль.
Если есть какие пожелания, или будут найдены ошибки, буду рад критике.
https://yadi.sk/d/OhY_a-YNhexW2

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


03 июл 2015, 11:56
Профиль
Случайный аватар
Мегажитель
Мегажитель

Группа: Пользователи
Сообщения: 321
Регистрация: 13 апр 2012, 13:11
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

хорошо бы ещё добавить в настройках игры возможность увеличение картинки на максимум без ввода кода.

Добавлено спустя 3 часа 44 минуты 37 секунд:
а двухстволку в эту версию можно добавить?


04 июл 2015, 13:09
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

GEN13
Размер экрана постараюсь сделать. Двухстволку можно будет добавить, если разберемся с REZFILE.

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


04 июл 2015, 18:26
Профиль
Случайный аватар
Мегажитель
Мегажитель

Группа: Пользователи
Сообщения: 321
Регистрация: 13 апр 2012, 13:11
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus
очень понравилась муз. тема после прохождения уровня :co_ol: тогда может заодно и перемещения черепа и Loading озвучишь в меню игры, как в версии PS1, если конечно имеется возможность?

а вот Load game хорошо бы перенести в раздел options, а то надпись "DOOM" перекрывает, но если всех устраивает, то можно не заморачиваться


04 июл 2015, 20:38
Профиль
Показать сообщения за:  Поле сортировки  
Ответить на тему  [ Сообщений: 1386 ]  На страницу Пред.  1 ... 11, 12, 13, 14, 15, 16, 17 ... 47  След.

Кто сейчас на конференции

Сейчас этот форум просматривают: Trendiction [Bot], Yandex [Bot] и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
© 2008-2024 «3DOPLANET.ru». Создано на основе phpBB® Forum Software © phpBB Group
Designed by ST Software || Русская поддержка phpBB || Time : 0.068s | 20 Queries | GZIP : On
Valid XHTML 1.0!