commit
caeb2dcb69
|
@ -15,6 +15,6 @@
|
||||||
"GameUI_Deadzone" "Deadzone"
|
"GameUI_Deadzone" "Deadzone"
|
||||||
"GameUI_Acceleration" "Acceleration"
|
"GameUI_Acceleration" "Acceleration"
|
||||||
"GameUI_Sensitivity" "Sensitivity"
|
"GameUI_Sensitivity" "Sensitivity"
|
||||||
"HINT_MOVE" "MOVE"
|
"HINT_MOVE" "TO MOVE"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -478,8 +478,12 @@ void controlsMenuRender(struct ControlsMenu* controlsMenu, struct RenderState* r
|
||||||
|
|
||||||
|
|
||||||
void controlsRenderPrompt(enum ControllerAction action, char* message, float opacity, struct RenderState* renderState) {
|
void controlsRenderPrompt(enum ControllerAction action, char* message, float opacity, struct RenderState* renderState) {
|
||||||
struct Vector2s16 size = fontMeasure(&gDejaVuSansFont, message);
|
if (message == NULL || (message != NULL && message[0] == '\0'))
|
||||||
|
return;
|
||||||
|
|
||||||
|
struct FontRenderer* fontRender = stackMalloc(sizeof(struct FontRenderer));
|
||||||
|
fontRendererLayout(fontRender, &gDejaVuSansFont, message, SCREEN_WD - (CONTROL_PROMPT_RIGHT_MARGIN + (CONTROL_PROMPT_PADDING * 2)));
|
||||||
|
|
||||||
int iconsWidth = controlsMeasureIcons(action);
|
int iconsWidth = controlsMeasureIcons(action);
|
||||||
|
|
||||||
int opacityAsInt = (int)(255 * opacity);
|
int opacityAsInt = (int)(255 * opacity);
|
||||||
|
@ -490,9 +494,9 @@ void controlsRenderPrompt(enum ControllerAction action, char* message, float opa
|
||||||
opacityAsInt = 0;
|
opacityAsInt = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int textPositionX = (SCREEN_WD - CONTROL_PROMPT_RIGHT_MARGIN - CONTROL_PROMPT_PADDING) - size.x;
|
int textPositionX = (SCREEN_WD - CONTROL_PROMPT_RIGHT_MARGIN - CONTROL_PROMPT_PADDING) - fontRender->width;
|
||||||
int textPositionY = (SCREEN_HT - CONTROL_PROMPT_BOTTOM_MARGIN - CONTROL_PROMPT_PADDING) - size.y;
|
int textPositionY = (SCREEN_HT - CONTROL_PROMPT_BOTTOM_MARGIN - CONTROL_PROMPT_PADDING) - fontRender->height;
|
||||||
|
|
||||||
gSPDisplayList(renderState->dl++, ui_material_list[SOLID_TRANSPARENT_OVERLAY_INDEX]);
|
gSPDisplayList(renderState->dl++, ui_material_list[SOLID_TRANSPARENT_OVERLAY_INDEX]);
|
||||||
gDPSetEnvColor(renderState->dl++, 0, 0, 0, opacityAsInt / 3);
|
gDPSetEnvColor(renderState->dl++, 0, 0, 0, opacityAsInt / 3);
|
||||||
gDPFillRectangle(
|
gDPFillRectangle(
|
||||||
|
@ -504,26 +508,28 @@ void controlsRenderPrompt(enum ControllerAction action, char* message, float opa
|
||||||
);
|
);
|
||||||
gSPDisplayList(renderState->dl++, ui_material_revert_list[SOLID_TRANSPARENT_OVERLAY_INDEX]);
|
gSPDisplayList(renderState->dl++, ui_material_revert_list[SOLID_TRANSPARENT_OVERLAY_INDEX]);
|
||||||
|
|
||||||
gSPDisplayList(renderState->dl++, ui_material_list[DEJAVU_SANS_0_INDEX]);
|
struct Coloru8 textColor;
|
||||||
gDPSetEnvColor(renderState->dl++, 232, 206, 80, opacityAsInt);
|
|
||||||
renderState->dl = fontRender(
|
textColor.r = 232;
|
||||||
&gDejaVuSansFont,
|
textColor.g = 206;
|
||||||
message,
|
textColor.b = 80;
|
||||||
textPositionX,
|
textColor.a = opacityAsInt;
|
||||||
textPositionY,
|
|
||||||
renderState->dl
|
renderState->dl = fontRendererBuildGfx(fontRender, gDejaVuSansImages, textPositionX, textPositionY, &textColor, renderState->dl);
|
||||||
);
|
|
||||||
gSPDisplayList(renderState->dl++, ui_material_revert_list[DEJAVU_SANS_0_INDEX]);
|
gSPDisplayList(renderState->dl++, ui_material_revert_list[DEJAVU_SANS_0_INDEX]);
|
||||||
|
|
||||||
gSPDisplayList(renderState->dl++, ui_material_list[BUTTON_ICONS_INDEX]);
|
gSPDisplayList(renderState->dl++, ui_material_list[BUTTON_ICONS_INDEX]);
|
||||||
gDPSetEnvColor(renderState->dl++, 232, 206, 80, opacityAsInt);
|
gDPSetEnvColor(renderState->dl++, 232, 206, 80, opacityAsInt);
|
||||||
renderState->dl = controlsRenderIcons(renderState->dl, action, textPositionX - CONTROL_PROMPT_PADDING, textPositionY);
|
renderState->dl = controlsRenderIcons(renderState->dl, action, textPositionX - CONTROL_PROMPT_PADDING, textPositionY);
|
||||||
gSPDisplayList(renderState->dl++, ui_material_revert_list[BUTTON_ICONS_INDEX]);
|
gSPDisplayList(renderState->dl++, ui_material_revert_list[BUTTON_ICONS_INDEX]);
|
||||||
|
|
||||||
|
stackMallocFree(fontRender);
|
||||||
}
|
}
|
||||||
|
|
||||||
void controlsRenderSubtitle(char* message, float textOpacity, float backgroundOpacity, struct RenderState* renderState, enum SubtitleType subtitleType) {
|
void controlsRenderSubtitle(char* message, float textOpacity, float backgroundOpacity, struct RenderState* renderState, enum SubtitleType subtitleType) {
|
||||||
if (message == NULL || (message != NULL && message[0] == '\0'))
|
if (message == NULL || (message != NULL && message[0] == '\0'))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
struct FontRenderer* fontRender = stackMalloc(sizeof(struct FontRenderer));
|
struct FontRenderer* fontRender = stackMalloc(sizeof(struct FontRenderer));
|
||||||
fontRendererLayout(fontRender, &gDejaVuSansFont, message, SCREEN_WD - (SUBTITLE_SIDE_MARGIN + SUBTITLE_PADDING) * 2);
|
fontRendererLayout(fontRender, &gDejaVuSansFont, message, SCREEN_WD - (SUBTITLE_SIDE_MARGIN + SUBTITLE_PADDING) * 2);
|
||||||
|
|
|
@ -155,16 +155,16 @@ u8 gPromptActions[] = {
|
||||||
ControllerActionJump,
|
ControllerActionJump,
|
||||||
};
|
};
|
||||||
|
|
||||||
char* gPromptText[] = {
|
int gPromptText[] = {
|
||||||
NULL,
|
NULL,
|
||||||
"TO PLACE THE ORANGE PORTAL",
|
HINT_GET_PORTAL_2,
|
||||||
"TO PLACE THE BLUE PORTAL",
|
HINT_GET_PORTAL_1,
|
||||||
"TO PICKUP AN OBJECT",
|
HINT_USE_ITEMS,
|
||||||
"TO DROP AN OBJECT",
|
HINT_DROP_ITEMS,
|
||||||
"TO USE",
|
HINT_USE_SWITCHES,
|
||||||
"TO CROUCH",
|
HINT_DUCK,
|
||||||
"TO MOVE",
|
HINT_MOVE,
|
||||||
"TO JUMP",
|
HINT_JUMP,
|
||||||
};
|
};
|
||||||
|
|
||||||
void hudShowActionPrompt(struct Hud* hud, enum CutscenePromptType promptType) {
|
void hudShowActionPrompt(struct Hud* hud, enum CutscenePromptType promptType) {
|
||||||
|
@ -359,10 +359,10 @@ void hudRender(struct Hud* hud, struct Player* player, struct RenderState* rende
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hud->promptOpacity > 0.0f && hud->promptType != CutscenePromptTypeNone) {
|
if (hud->promptOpacity > 0.0f && hud->promptType != CutscenePromptTypeNone) {
|
||||||
controlsRenderPrompt(gPromptActions[hud->promptType], gPromptText[hud->promptType], hud->promptOpacity, renderState);
|
controlsRenderPrompt(gPromptActions[hud->promptType], translationsGet(gPromptText[hud->promptType]), hud->promptOpacity, renderState);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hud->subtitleOpacity > 0.0f && (gSaveData.controls.flags & ControlSaveSubtitlesEnabled || gSaveData.controls.flags & ControlSaveAllSubtitlesEnabled) && hud->subtitleKey != SubtitleKeyNone) {
|
if (hud->subtitleOpacity > 0.0f && (gSaveData.controls.flags & ControlSaveSubtitlesEnabled || gSaveData.controls.flags & ControlSaveAllSubtitlesEnabled) && hud->subtitleKey != SubtitleKeyNone) {
|
||||||
controlsRenderSubtitle(translationsGet(hud->subtitleKey), hud->subtitleOpacity, hud->backgroundOpacity, renderState, hud->subtitleType);
|
controlsRenderSubtitle(translationsGet(hud->subtitleKey), hud->subtitleOpacity, hud->backgroundOpacity, renderState, hud->subtitleType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,13 @@ portal_whitelist = {
|
||||||
"PORTAL_CHAPTER1_TITLE",
|
"PORTAL_CHAPTER1_TITLE",
|
||||||
"VALVE_PRIMARY_ATTACK",
|
"VALVE_PRIMARY_ATTACK",
|
||||||
"VALVE_SECONDARY_ATTACK",
|
"VALVE_SECONDARY_ATTACK",
|
||||||
|
"HINT_GET_PORTAL_1",
|
||||||
|
"HINT_GET_PORTAL_2",
|
||||||
|
"HINT_USE_ITEMS",
|
||||||
|
"HINT_DROP_ITEMS",
|
||||||
|
"HINT_USE_SWITCHES",
|
||||||
|
"HINT_DUCK",
|
||||||
|
"HINT_JUMP",
|
||||||
}
|
}
|
||||||
|
|
||||||
valve_whitelist = {
|
valve_whitelist = {
|
||||||
|
@ -309,7 +316,10 @@ def filter_whitelist(keys, values, whitelist):
|
||||||
for index in range(len(keys)):
|
for index in range(len(keys)):
|
||||||
if keys[index] in whitelist:
|
if keys[index] in whitelist:
|
||||||
result_keys.append(keys[index])
|
result_keys.append(keys[index])
|
||||||
result.append(values[index])
|
value = values[index]
|
||||||
|
if "HINT_" in keys[index]:
|
||||||
|
value = re.sub('%[^%]*%', '', value).strip()
|
||||||
|
result.append(value)
|
||||||
|
|
||||||
return result_keys, result
|
return result_keys, result
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue