From a69fcd2bbbe8f122eb6b05688bca0cc19aac53d7 Mon Sep 17 00:00:00 2001 From: doxoh Date: Fri, 24 Nov 2023 18:48:26 +0100 Subject: [PATCH] feat(shared): new textlable methods --- c-api/entities/textLabel.cpp | 70 ++++++++++++++++++++++++++++++++++++ c-api/entities/textLabel.h | 20 +++++++++++ c-api/func_table.cpp | 26 +++++++++++++- cpp-sdk | 2 +- 4 files changed, 116 insertions(+), 2 deletions(-) diff --git a/c-api/entities/textLabel.cpp b/c-api/entities/textLabel.cpp index 6affdeb..a580d4f 100644 --- a/c-api/entities/textLabel.cpp +++ b/c-api/entities/textLabel.cpp @@ -1,6 +1,7 @@ #include "textLabel.h" #include "../utils/macros.h" +#include "../utils/strings.h" CAPI_START() @@ -43,6 +44,75 @@ void TextLabel_SetColor(alt::ITextLabel* textLabel, rgba_t color) textLabel->SetColor(textLabelColor); } +void TextLabel_GetOutlineColor(alt::ITextLabel* textLabel, rgba_t& color) +{ + auto outlineColor = textLabel->GetOutlineColor(); + color.r = outlineColor.r; + color.g = outlineColor.g; + color.b = outlineColor.b; + color.a = outlineColor.a; +} + +void TextLabel_SetOutlineColor(alt::ITextLabel* textLabel, rgba_t color) +{ + alt::RGBA outlineColor; + outlineColor.r = color.r; + outlineColor.g = color.g; + outlineColor.b = color.b; + outlineColor.a = color.a; + textLabel->SetOutlineColor(outlineColor); +} + +float TextLabel_GetOutlineWidth(alt::ITextLabel* textLabel) +{ + return textLabel->GetOutlineWidth(); +} + +void TextLabel_SetOutlineWidth(alt::ITextLabel* textLabel, float width) +{ + textLabel->SetOutlineWidth(width); +} + +float TextLabel_GetFontSize(alt::ITextLabel* textLabel) +{ + return textLabel->GetFontSize(); +} + +void TextLabel_SetFontSize(alt::ITextLabel* textLabel, float size) +{ + textLabel->SetFontSize(size); +} + +uint8_t TextLabel_GetAlign(alt::ITextLabel* textLabel) +{ + return static_cast(textLabel->GetAlign()); +} + +void TextLabel_SetAlign(alt::ITextLabel* textLabel, uint8_t align) +{ + textLabel->SetAlign(static_cast(align)); +} + +const char* TextLabel_GetText(alt::ITextLabel* textLabel, int32_t& size) +{ + return AllocateString(textLabel->GetText(), size); +} + +void TextLabel_SetText(alt::ITextLabel* textLabel, const char* text) +{ + textLabel->SetText(text); +} + +const char* TextLabel_GetFont(alt::ITextLabel* textLabel, int32_t& size) +{ + return AllocateString(textLabel->GetFont(), size); +} + +void TextLabel_SetFont(alt::ITextLabel* textLabel, const char* font) +{ + textLabel->SetFont(font); +} + uint8_t TextLabel_IsVisible(alt::ITextLabel* textLabel) { return textLabel->IsVisible(); diff --git a/c-api/entities/textLabel.h b/c-api/entities/textLabel.h index 09136f4..3514559 100644 --- a/c-api/entities/textLabel.h +++ b/c-api/entities/textLabel.h @@ -21,6 +21,26 @@ EXPORT_SHARED uint8_t TextLabel_IsGlobal(alt::ITextLabel* textLabel); EXPORT_SHARED alt::IPlayer* TextLabel_GetTarget(alt::ITextLabel* textLabel); EXPORT_SHARED void TextLabel_GetColor(alt::ITextLabel* textLabel, rgba_t& color); EXPORT_SHARED void TextLabel_SetColor(alt::ITextLabel* textLabel, rgba_t color); + + +EXPORT_SHARED void TextLabel_GetOutlineColor(alt::ITextLabel* textLabel, rgba_t& color); +EXPORT_SHARED void TextLabel_SetOutlineColor(alt::ITextLabel* textLabel, rgba_t color); + +EXPORT_SHARED float TextLabel_GetOutlineWidth(alt::ITextLabel* textLabel); +EXPORT_SHARED void TextLabel_SetOutlineWidth(alt::ITextLabel* textLabel, float width); + +EXPORT_SHARED float TextLabel_GetFontSize(alt::ITextLabel* textLabel); +EXPORT_SHARED void TextLabel_SetFontSize(alt::ITextLabel* textLabel, float size); + +EXPORT_SHARED uint8_t TextLabel_GetAlign(alt::ITextLabel* textLabel); +EXPORT_SHARED void TextLabel_SetAlign(alt::ITextLabel* textLabel, uint8_t align); + +EXPORT_SHARED const char* TextLabel_GetText(alt::ITextLabel* textLabel, int32_t& size); +EXPORT_SHARED void TextLabel_SetText(alt::ITextLabel* textLabel, const char* text); + +EXPORT_SHARED const char* TextLabel_GetFont(alt::ITextLabel* textLabel, int32_t& size); +EXPORT_SHARED void TextLabel_SetFont(alt::ITextLabel* textLabel, const char* font); + EXPORT_SHARED uint8_t TextLabel_IsVisible(alt::ITextLabel* textLabel); EXPORT_SHARED void TextLabel_SetVisible(alt::ITextLabel* textLabel, uint8_t visible); EXPORT_SHARED float TextLabel_GetScale(alt::ITextLabel* textLabel); diff --git a/c-api/func_table.cpp b/c-api/func_table.cpp index 6f75cb0..5c4d599 100644 --- a/c-api/func_table.cpp +++ b/c-api/func_table.cpp @@ -1,6 +1,6 @@ #include "func_table.h" -inline uint64_t capiHash = 12441135083740807336UL; +inline uint64_t capiHash = 13175119521654926275UL; inline uint64_t capiHashes[] = { 0, #ifdef ALT_CLIENT_API @@ -1238,20 +1238,32 @@ inline uint64_t capiHashes[] = { 15249221947393767886UL, 14077927656531124451UL, 4296832302534320657UL, + 14816944269489448776UL, 71661853310303691UL, + 11844719002405795477UL, + 17712816802687836464UL, 17469426826709697373UL, + 9286889361477653687UL, + 15484599558868477690UL, 7785535667614932812UL, 13329021670959257864UL, 9892232591592550017UL, 6781195795327060290UL, + 10288308720161428715UL, 8297185820527489834UL, 2012454944172259572UL, 17978851917355436422UL, 15384695376179962647UL, + 4330021893145796095UL, 1694191866473087021UL, 15820914931030469094UL, + 12238568229862830842UL, + 270826682210756999UL, + 17823771742456553825UL, + 12181452542389409441UL, 6102843265505169340UL, 3918260719528326415UL, + 18001120162521415724UL, 2302278843105157392UL, 8318093389193375258UL, 15007201997776333277UL, @@ -2986,20 +2998,32 @@ inline void* capiPointers[] = { (void*) Resource_SetExport, (void*) Resource_SetExports, (void*) RmlDocument_GetID, + (void*) TextLabel_GetAlign, (void*) TextLabel_GetColor, + (void*) TextLabel_GetFont, + (void*) TextLabel_GetFontSize, (void*) TextLabel_GetID, + (void*) TextLabel_GetOutlineColor, + (void*) TextLabel_GetOutlineWidth, (void*) TextLabel_GetRotation, (void*) TextLabel_GetScale, (void*) TextLabel_GetStreamingDistance, (void*) TextLabel_GetTarget, + (void*) TextLabel_GetText, (void*) TextLabel_GetWorldObject, (void*) TextLabel_IsFacingCamera, (void*) TextLabel_IsGlobal, (void*) TextLabel_IsVisible, + (void*) TextLabel_SetAlign, (void*) TextLabel_SetColor, (void*) TextLabel_SetFaceCamera, + (void*) TextLabel_SetFont, + (void*) TextLabel_SetFontSize, + (void*) TextLabel_SetOutlineColor, + (void*) TextLabel_SetOutlineWidth, (void*) TextLabel_SetRotation, (void*) TextLabel_SetScale, + (void*) TextLabel_SetText, (void*) TextLabel_SetVisible, (void*) Vehicle_GetEntity, (void*) Vehicle_GetID, diff --git a/cpp-sdk b/cpp-sdk index 0da1f33..5d4afcc 160000 --- a/cpp-sdk +++ b/cpp-sdk @@ -1 +1 @@ -Subproject commit 0da1f33d39302e5d3c76666449ed64e49eb27f3f +Subproject commit 5d4afcc33122f38aab94b7e144959ff0b5229084