sceFontCharacterGetTextOrder , sceFontCharacterLooksFormatCharacters , sceFontCharacterLooksWhiteSpace RE

This commit is contained in:
georgemoralis 2025-02-27 10:49:42 +02:00
parent c63b1a058c
commit 6470992007
2 changed files with 37 additions and 12 deletions

View file

@ -40,19 +40,39 @@ s32 PS4_SYSV_ABI sceFontCharacterGetTextFontCode() {
return ORBIS_OK;
}
s32 PS4_SYSV_ABI sceFontCharacterGetTextOrder() {
LOG_ERROR(Lib_Font, "(STUBBED) called");
s32 PS4_SYSV_ABI sceFontCharacterGetTextOrder(OrbisFontTextCharacter* textCharacter,
void** pTextOrder) {
if (!pTextOrder) {
LOG_DEBUG(Lib_Font, "Invalid parameter");
return ORBIS_FONT_ERROR_INVALID_PARAMETER;
}
if (!textCharacter) {
LOG_DEBUG(Lib_Font, "Invalid parameter");
*pTextOrder = NULL;
return ORBIS_FONT_ERROR_INVALID_PARAMETER;
}
// Retrieve text order
*pTextOrder = textCharacter->textOrder;
return ORBIS_OK;
}
s32 PS4_SYSV_ABI sceFontCharacterLooksFormatCharacters() {
LOG_ERROR(Lib_Font, "(STUBBED) called");
return ORBIS_OK;
u32 PS4_SYSV_ABI sceFontCharacterLooksFormatCharacters(OrbisFontTextCharacter* textCharacter) {
if (!textCharacter) {
return 0;
}
// Check if the format flag (bit 2) is set
return (textCharacter->formatFlags & 0x04) ? textCharacter->characterCode : 0;
}
s32 PS4_SYSV_ABI sceFontCharacterLooksWhiteSpace() {
LOG_ERROR(Lib_Font, "(STUBBED) called");
return ORBIS_OK;
u32 PS4_SYSV_ABI sceFontCharacterLooksWhiteSpace(OrbisFontTextCharacter* textCharacter) {
if (!textCharacter) {
return 0;
}
return (textCharacter->charType == 0x0E) ? textCharacter->characterCode : 0;
}
s32 PS4_SYSV_ABI sceFontCharacterRefersTextBack() {

View file

@ -13,7 +13,11 @@ namespace Libraries::Font {
struct OrbisFontTextCharacter {
// Other fields...
u8 bidiLevel; // Assuming the field at offset 0x3B stores the Bidi level
void* textOrder; // Field at offset 0x10 (pointer to text order info)
u32 characterCode; // Field assumed at offset 0x28
u8 charType; // Field assumed at offset 0x39
u8 bidiLevel; // Field assumed at offset 0x3B stores the Bidi level
u8 formatFlags; // Field at offset 0x3D (stores format-related flags)
};
s32 PS4_SYSV_ABI sceFontAttachDeviceCacheBuffer();
@ -22,9 +26,10 @@ s32 PS4_SYSV_ABI sceFontCharacterGetBidiLevel(OrbisFontTextCharacter* textCharac
int* bidiLevel);
s32 PS4_SYSV_ABI sceFontCharacterGetSyllableStringState();
s32 PS4_SYSV_ABI sceFontCharacterGetTextFontCode();
s32 PS4_SYSV_ABI sceFontCharacterGetTextOrder();
s32 PS4_SYSV_ABI sceFontCharacterLooksFormatCharacters();
s32 PS4_SYSV_ABI sceFontCharacterLooksWhiteSpace();
s32 PS4_SYSV_ABI sceFontCharacterGetTextOrder(OrbisFontTextCharacter* textCharacter,
void** pTextOrder);
u32 PS4_SYSV_ABI sceFontCharacterLooksFormatCharacters(OrbisFontTextCharacter* textCharacter);
u32 PS4_SYSV_ABI sceFontCharacterLooksWhiteSpace(OrbisFontTextCharacter* textCharacter);
s32 PS4_SYSV_ABI sceFontCharacterRefersTextBack();
s32 PS4_SYSV_ABI sceFontCharacterRefersTextNext();
s32 PS4_SYSV_ABI sceFontCharactersRefersTextCodes();