commit
caeb2dcb69
|
@ -15,6 +15,6 @@
|
|||
"GameUI_Deadzone" "Deadzone"
|
||||
"GameUI_Acceleration" "Acceleration"
|
||||
"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) {
|
||||
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 opacityAsInt = (int)(255 * opacity);
|
||||
|
@ -490,9 +494,9 @@ void controlsRenderPrompt(enum ControllerAction action, char* message, float opa
|
|||
opacityAsInt = 0;
|
||||
}
|
||||
|
||||
int textPositionX = (SCREEN_WD - CONTROL_PROMPT_RIGHT_MARGIN - CONTROL_PROMPT_PADDING) - size.x;
|
||||
int textPositionY = (SCREEN_HT - CONTROL_PROMPT_BOTTOM_MARGIN - CONTROL_PROMPT_PADDING) - size.y;
|
||||
|
||||
int textPositionX = (SCREEN_WD - CONTROL_PROMPT_RIGHT_MARGIN - CONTROL_PROMPT_PADDING) - fontRender->width;
|
||||
int textPositionY = (SCREEN_HT - CONTROL_PROMPT_BOTTOM_MARGIN - CONTROL_PROMPT_PADDING) - fontRender->height;
|
||||
|
||||
gSPDisplayList(renderState->dl++, ui_material_list[SOLID_TRANSPARENT_OVERLAY_INDEX]);
|
||||
gDPSetEnvColor(renderState->dl++, 0, 0, 0, opacityAsInt / 3);
|
||||
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_list[DEJAVU_SANS_0_INDEX]);
|
||||
gDPSetEnvColor(renderState->dl++, 232, 206, 80, opacityAsInt);
|
||||
renderState->dl = fontRender(
|
||||
&gDejaVuSansFont,
|
||||
message,
|
||||
textPositionX,
|
||||
textPositionY,
|
||||
renderState->dl
|
||||
);
|
||||
struct Coloru8 textColor;
|
||||
|
||||
textColor.r = 232;
|
||||
textColor.g = 206;
|
||||
textColor.b = 80;
|
||||
textColor.a = opacityAsInt;
|
||||
|
||||
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_list[BUTTON_ICONS_INDEX]);
|
||||
gDPSetEnvColor(renderState->dl++, 232, 206, 80, opacityAsInt);
|
||||
renderState->dl = controlsRenderIcons(renderState->dl, action, textPositionX - CONTROL_PROMPT_PADDING, textPositionY);
|
||||
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) {
|
||||
if (message == NULL || (message != NULL && message[0] == '\0'))
|
||||
return;
|
||||
return;
|
||||
|
||||
struct FontRenderer* fontRender = stackMalloc(sizeof(struct FontRenderer));
|
||||
fontRendererLayout(fontRender, &gDejaVuSansFont, message, SCREEN_WD - (SUBTITLE_SIDE_MARGIN + SUBTITLE_PADDING) * 2);
|
||||
|
|
|
@ -155,16 +155,16 @@ u8 gPromptActions[] = {
|
|||
ControllerActionJump,
|
||||
};
|
||||
|
||||
char* gPromptText[] = {
|
||||
int gPromptText[] = {
|
||||
NULL,
|
||||
"TO PLACE THE ORANGE PORTAL",
|
||||
"TO PLACE THE BLUE PORTAL",
|
||||
"TO PICKUP AN OBJECT",
|
||||
"TO DROP AN OBJECT",
|
||||
"TO USE",
|
||||
"TO CROUCH",
|
||||
"TO MOVE",
|
||||
"TO JUMP",
|
||||
HINT_GET_PORTAL_2,
|
||||
HINT_GET_PORTAL_1,
|
||||
HINT_USE_ITEMS,
|
||||
HINT_DROP_ITEMS,
|
||||
HINT_USE_SWITCHES,
|
||||
HINT_DUCK,
|
||||
HINT_MOVE,
|
||||
HINT_JUMP,
|
||||
};
|
||||
|
||||
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) {
|
||||
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) {
|
||||
controlsRenderSubtitle(translationsGet(hud->subtitleKey), hud->subtitleOpacity, hud->backgroundOpacity, renderState, hud->subtitleType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,6 +36,13 @@ portal_whitelist = {
|
|||
"PORTAL_CHAPTER1_TITLE",
|
||||
"VALVE_PRIMARY_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 = {
|
||||
|
@ -309,7 +316,10 @@ def filter_whitelist(keys, values, whitelist):
|
|||
for index in range(len(keys)):
|
||||
if keys[index] in whitelist:
|
||||
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
|
||||
|
||||
|
|
Loading…
Reference in a new issue