mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/4jcraft.git
synced 2026-06-22 18:25:32 +00:00
restructure codebase according to vcproj filters
This commit is contained in:
67
Minecraft.Client/net/minecraft/client/gui/ControlsScreen.cpp
Normal file
67
Minecraft.Client/net/minecraft/client/gui/ControlsScreen.cpp
Normal file
@@ -0,0 +1,67 @@
|
||||
#include "../../../../../Minecraft.World/Header Files/stdafx.h"
|
||||
#include "ControlsScreen.h"
|
||||
#include "../Options.h"
|
||||
#include "SmallButton.h"
|
||||
#include "../../../../../Minecraft.World/net/minecraft/locale/net.minecraft.locale.h"
|
||||
|
||||
ControlsScreen::ControlsScreen(Screen* lastScreen, Options* options) {
|
||||
// 4J - added initialisers
|
||||
title = L"Controls";
|
||||
selectedKey = -1;
|
||||
|
||||
this->lastScreen = lastScreen;
|
||||
this->options = options;
|
||||
}
|
||||
|
||||
int ControlsScreen::getLeftScreenPosition() { return width / 2 - 155; }
|
||||
|
||||
void ControlsScreen::init() {
|
||||
Language* language = Language::getInstance();
|
||||
|
||||
int leftPos = getLeftScreenPosition();
|
||||
for (int i = 0; i < Options::keyMappings_length; i++) {
|
||||
buttons.push_back(new SmallButton(
|
||||
i, leftPos + i % 2 * ROW_WIDTH, height / 6 + 24 * (i >> 1),
|
||||
BUTTON_WIDTH, 20, options->getKeyMessage(i)));
|
||||
}
|
||||
|
||||
buttons.push_back(new Button(200, width / 2 - 100, height / 6 + 24 * 7,
|
||||
language->getElement(L"gui.done")));
|
||||
title = language->getElement(L"controls.title");
|
||||
}
|
||||
|
||||
void ControlsScreen::buttonClicked(Button* button) {
|
||||
for (int i = 0; i < Options::keyMappings_length; i++) {
|
||||
buttons[i]->msg = options->getKeyMessage(i);
|
||||
}
|
||||
if (button->id == 200) {
|
||||
minecraft->setScreen(lastScreen);
|
||||
} else {
|
||||
selectedKey = button->id;
|
||||
button->msg = L"> " + options->getKeyMessage(button->id) + L" <";
|
||||
}
|
||||
}
|
||||
|
||||
void ControlsScreen::keyPressed(wchar_t eventCharacter, int eventKey) {
|
||||
if (selectedKey >= 0) {
|
||||
options->setKey(selectedKey, eventKey);
|
||||
buttons[selectedKey]->msg = options->getKeyMessage(selectedKey);
|
||||
selectedKey = -1;
|
||||
} else {
|
||||
Screen::keyPressed(eventCharacter, eventKey);
|
||||
}
|
||||
}
|
||||
|
||||
void ControlsScreen::render(int xm, int ym, float a) {
|
||||
renderBackground();
|
||||
drawCenteredString(font, title, width / 2, 20, 0xffffff);
|
||||
|
||||
int leftPos = getLeftScreenPosition();
|
||||
for (int i = 0; i < Options::keyMappings_length; i++) {
|
||||
drawString(font, options->getKeyDescription(i),
|
||||
leftPos + i % 2 * ROW_WIDTH + BUTTON_WIDTH + 6,
|
||||
height / 6 + 24 * (i >> 1) + 7, 0xffffffff);
|
||||
}
|
||||
|
||||
Screen::render(xm, ym, a);
|
||||
}
|
||||
Reference in New Issue
Block a user