-
Notifications
You must be signed in to change notification settings - Fork 91
WIP: Описания классов переменных
Здесь какая-то часть комментариев к устройству классов внутри кода Вангеров. К сожалению не претендует на полноту и точность..
Основные глобальные переменные
-
ViewX, ViewY, ViewZ
- где находится камера
Основной класс ответственный за логику отрисовки карты высот
-
Методы/переменные
-
xsize
,ysize
- размеры области отрисовки -
xside
,yside
- половина размера области отрисовки -
xc
,yc
- положение центра области отрисовки -
x
,y
- лево, верх области отрисовки. Помоему используется не часто -
draw()
-
change(int Dx,int Dy,int mode,int xcenter,int ycenter)
Выставляет центр и границы экрана карты высот
-
Dx, Dy
- половина размера области отрисовки по горизонтали/вертикали -
mode
- ... Обычно0
-
xcenter/ycenter
- положение центра области отрисовки на экране
-
-
Класс непосредственно рендерящий карту высот
Основная игровая логика
-
Глобальные методы/переменные
-
set_screen(int Dx,int Dy,int mode,int xcenter,int ycenter)
- меняет границы экрана карты высот. Просто вызываетiGameMap::change(...)
-
-
Глобальные методы/переменные
-
change_screen(int mode)
- вызывается изactIntDispatcher::change_mode()
. Меняет "рамку" и выставляет центр и границы экрана карты высот исходя из положения и размеров "рамки" (curIbs
)
-
Менеджер GUI. Занимается и интерфейсами в Эскейвах (все методы начинающиеся с i_
), и интерфейсами на игровом экране. Не отрисовывает диалог, который появляется при нажатии на Esc (Pause screen).
-
Методы/переменные:
-
flags
- флаги (см. ActIntDispatcher Flags) -
curIbs
- "Рамка" внутри которой отрисовывается мир, vMap. -
redraw()
- отрисовка на поверхности flush()
-
i_redraw()
- отрисовка в эскейве i_flush()
-
change_mode()
- вызывается после смены режима GUI:AS_INV_MODE
- Открыт инвентарь,AS_INFO_MODE
- основной экран. -
change_ibs()
- переключить "рамку" -
EventQuant()
- обработка эвентов GUI. см. Event Codes. Основные коды:-
EV_CHANGE_MODE
- переключить режим -
EV_SET_MODE
- установить режимevent->data
. -
EV_CHANGE_SCREEN
-По-моему не используется, как и многие другие флаги. Только есликод эвента передается как число, а не именованая константа. Отличается от change_mode, тем что не перерисовывает GUI элементы -
EV_FULLSCR_CHANGE
- переключение на полноэкранный режим и обратно (AS_FULLSCR
) -
EV_TELEPORT
- TODO -
EV_ENTER_TEXT_MODE
,ACI_SHOW_TEXT
- TODO -
EV_LEAVE_TEXT_MODE
,ACI_HIDE_TEXT
- TODO -
ACI_LOCK_INTERFACE
,ACI_UNLOCK_INTERFACE
- TODO -
EV_ENTER_CHAT
,EV_LEAVE_CHAT
- TODO -
EV_ACTIVATE_MENU
- пока не ясно где активируется -
Остальные евенты не относятся к set_screen
-
-
KeyQuant()
- Обработка мыши и клавиатуры send_event(int cd,int dt,actintItemData* p)
-
Менеджер панелей, которые появляются при нажатии на Esc (Pause screen). Каждую панель опиcывает класс aciScreen
.
Логика отрисовки интерфейса с картой высот (pseudo 3d)
Элемент pseudo 3d интерфейса (абстрактный класс)
Элемент pseudo 3d интерфейса, карта высот загружается из .bmp файла. (Например: resource/iscreen/bitmap/.bmp)*
Функции относящиеся к рендерингу pseudo 3d интерфейса
Карта высот в интерфейсе, отрисовка
-
Методы/переменные
-
accept()
Изначальная отрисовка карты, расстановка высот
-