Hopefully fix linux + clang_format

This commit is contained in:
aMannus
2025-07-04 14:24:33 +02:00
parent 59993c75be
commit 524a26f759
6 changed files with 165 additions and 117 deletions

View File

@@ -62,7 +62,7 @@ std::array<std::string, LANGUAGE_MAX> RandomizerSettingsMenuText[RSM_MAX] = {
}, },
}; };
std::array<std::string, LANGUAGE_MAX> ArchipelagoSettingsMenuText[ASM_MAX] { std::array<std::string, LANGUAGE_MAX> ArchipelagoSettingsMenuText[ASM_MAX]{
// ASM_START_ARCHIPELAGO // ASM_START_ARCHIPELAGO
{ {
"Start Archipelago", "Start Archipelago",

View File

@@ -53,8 +53,9 @@ bool ArchipelagoClient::StartClient() {
apClient->set_socket_error_handler([&](const std::string& msg) { apClient->set_socket_error_handler([&](const std::string& msg) {
retries++; retries++;
if(retries >= AP_Client_consts::MAX_RETRIES) { if (retries >= AP_Client_consts::MAX_RETRIES) {
ArchipelagoConsole_SendMessage("[ERROR] Could not connect to server after several tries.\nAre the entered server address and slot name correct?"); ArchipelagoConsole_SendMessage("[ERROR] Could not connect to server after several tries.\nAre the entered "
"server address and slot name correct?");
CVarSetInteger(CVAR_REMOTE_ARCHIPELAGO("ConnectionStatus"), 2); // Connection error CVarSetInteger(CVAR_REMOTE_ARCHIPELAGO("ConnectionStatus"), 2); // Connection error
disconnecting = true; disconnecting = true;
return; return;
@@ -218,12 +219,10 @@ bool ArchipelagoClient::StartClient() {
if (deathLink && data["data"]["source"] != apClient->get_slot()) { if (deathLink && data["data"]["source"] != apClient->get_slot()) {
if (GameInteractor::IsSaveLoaded()) { if (GameInteractor::IsSaveLoaded()) {
gSaveContext.health = 0; gSaveContext.health = 0;
Notification::Emit( std::string prefixText = data["data"]["source"] + "died.";
{ .prefix = data["data"]["source"] + "died.", Notification::Emit({ .prefix = prefixText, .message = "Cause:", .suffix = data["data"]["cause"] });
.message = "Cause:", std::string deathLinkMessage = "[LOG] Received death link from " + std::string(data["data"]["source"]) +
.suffix = data["data"]["cause"] }); ". Cause: " + std::string(data["data"]["cause"]);
std::string deathLinkMessage =
"[LOG] Received death link from " + std::string(data["data"]["source"]) + ". Cause: " + std::string(data["data"]["cause"]);
ArchipelagoConsole_SendMessage(deathLinkMessage.c_str()); ArchipelagoConsole_SendMessage(deathLinkMessage.c_str());
isDeathLinkedDeath = true; isDeathLinkedDeath = true;
@@ -484,11 +483,9 @@ void ArchipelagoClient::OnItemGiven(uint32_t rc, GetItemEntry gi, uint8_t isGiSk
void ArchipelagoClient::SendDeathLink() { void ArchipelagoClient::SendDeathLink() {
if (apClient && CVarGetInteger(CVAR_REMOTE_ARCHIPELAGO("DeathLink"), 0) && !isDeathLinkedDeath) { if (apClient && CVarGetInteger(CVAR_REMOTE_ARCHIPELAGO("DeathLink"), 0) && !isDeathLinkedDeath) {
nlohmann::json data{ nlohmann::json data{ { "time", apClient->get_server_time() },
{ "time", apClient->get_server_time() },
{ "cause", "Shipwrecked by King Harkinian." }, { "cause", "Shipwrecked by King Harkinian." },
{ "source", apClient->get_slot() } { "source", apClient->get_slot() } };
};
apClient->Bounce(data, {}, {}, { "DeathLink" }); apClient->Bounce(data, {}, {}, { "DeathLink" });
Notification::Emit({ .message = "Sending Death Link" }); Notification::Emit({ .message = "Sending Death Link" });
@@ -599,8 +596,7 @@ void RegisterArchipelago() {
COND_HOOK(GameInteractor::PostLoadGame, true, COND_HOOK(GameInteractor::PostLoadGame, true,
[](int32_t file_id) { ArchipelagoClient::GetInstance().GameLoaded(); }); [](int32_t file_id) { ArchipelagoClient::GetInstance().GameLoaded(); });
COND_HOOK( COND_HOOK(GameInteractor::OnRandomizerItemGivenHooks, IS_ARCHIPELAGO,
GameInteractor::OnRandomizerItemGivenHooks, IS_ARCHIPELAGO,
[](uint32_t rc, GetItemEntry gi, uint8_t isGiSkipped) { [](uint32_t rc, GetItemEntry gi, uint8_t isGiSkipped) {
ArchipelagoClient::GetInstance().OnItemGiven(rc, gi, isGiSkipped); ArchipelagoClient::GetInstance().OnItemGiven(rc, gi, isGiSkipped);
}); });

View File

@@ -70,9 +70,9 @@ void ArchipelagoSettingsWindow::DrawElement() {
ImGui::PopStyleColor(); ImGui::PopStyleColor();
ImGui::SeparatorText("Additional Options"); ImGui::SeparatorText("Additional Options");
if (UIWidgets::CVarCheckbox("Death Link", CVAR_REMOTE_ARCHIPELAGO("DeathLink"), if (UIWidgets::CVarCheckbox(
UIWidgets::CheckboxOptions() "Death Link", CVAR_REMOTE_ARCHIPELAGO("DeathLink"),
.Color(THEME_COLOR).Tooltip("You die, others die. Others die, you die!"))) { UIWidgets::CheckboxOptions().Color(THEME_COLOR).Tooltip("You die, others die. Others die, you die!"))) {
apClient.SetDeathLinkTag(); apClient.SetDeathLinkTag();
} }

View File

@@ -1641,8 +1641,7 @@ void FileChoose_RotateToNameEntry(GameState* thisx) {
this->windowRot += VREG(16); this->windowRot += VREG(16);
if (this->prevConfigMode == CM_RANDOMIZER_SETTINGS_MENU || if (this->prevConfigMode == CM_RANDOMIZER_SETTINGS_MENU || this->prevConfigMode == CM_ARCHIPELAGO_SETTINGS_MENU) {
this->prevConfigMode == CM_ARCHIPELAGO_SETTINGS_MENU) {
if (this->windowRot >= 942.0f) { if (this->windowRot >= 942.0f) {
this->windowRot = 628.0f; this->windowRot = 628.0f;
this->configMode = CM_START_NAME_ENTRY; this->configMode = CM_START_NAME_ENTRY;
@@ -1751,7 +1750,7 @@ void FileChoose_RotateToRandomizer(GameState* thisx) {
void FileChoose_RotateToArchipelago(GameState* thisx) { void FileChoose_RotateToArchipelago(GameState* thisx) {
FileChooseContext* this = (FileChooseContext*)thisx; FileChooseContext* this = (FileChooseContext*)thisx;
if (this->configMode == CM_NAME_ENTRY_TO_ARCHIPELAGO_SETTINGS_MENU ) { if (this->configMode == CM_NAME_ENTRY_TO_ARCHIPELAGO_SETTINGS_MENU) {
this->windowRot -= VREG(16); this->windowRot -= VREG(16);
if (this->windowRot <= 314.0f) { if (this->windowRot <= 314.0f) {
@@ -1780,9 +1779,9 @@ void FileChoose_UpdateArchipelagoMenu(GameState* thisx) {
} }
// Move menu selection up or down // Move menu selection up or down
if(ABS(this->stickRelY) > 30 || (dpad && CHECK_BTN_ANY(input->press.button, BTN_DDOWN | BTN_DUP))) { if (ABS(this->stickRelY) > 30 || (dpad && CHECK_BTN_ANY(input->press.button, BTN_DDOWN | BTN_DUP))) {
// move down // move down
if(this->stickRelY < -30 || (dpad && CHECK_BTN_ANY(input->press.button, BTN_DDOWN))) { if (this->stickRelY < -30 || (dpad && CHECK_BTN_ANY(input->press.button, BTN_DDOWN))) {
if ((this->archipelagoIndex + 1) > ASM_CHANGE_CONNECTION_INFO) { if ((this->archipelagoIndex + 1) > ASM_CHANGE_CONNECTION_INFO) {
this->archipelagoIndex = ASM_START_ARCHIPELAGO; this->archipelagoIndex = ASM_START_ARCHIPELAGO;
} else { } else {
@@ -1871,71 +1870,127 @@ void FileChoose_StartArchipelagoMenu(GameState* thisx) {
} }
} }
static void (*gConfigModeUpdateFuncs[])(GameState*) = { static void (*gConfigModeUpdateFuncs[])(GameState*) = { FileChoose_StartFadeIn,
FileChoose_StartFadeIn, FileChoose_FinishFadeIn, FileChoose_FinishFadeIn,
FileChoose_UpdateMainMenu, FileChoose_SetupCopySource, FileChoose_UpdateMainMenu,
FileChoose_SelectCopySource, FileChoose_SetupCopyDest1, FileChoose_SetupCopySource,
FileChoose_SetupCopyDest2, FileChoose_SelectCopyDest, FileChoose_SelectCopySource,
FileChoose_ExitToCopySource1, FileChoose_ExitToCopySource2, FileChoose_SetupCopyDest1,
FileChoose_SetupCopyConfirm1, FileChoose_SetupCopyConfirm2, FileChoose_SetupCopyDest2,
FileChoose_CopyConfirm, FileChoose_ReturnToCopyDest, FileChoose_SelectCopyDest,
FileChoose_CopyAnim1, FileChoose_CopyAnim2, FileChoose_ExitToCopySource1,
FileChoose_CopyAnim3, FileChoose_CopyAnim4, FileChoose_ExitToCopySource2,
FileChoose_CopyAnim5, FileChoose_ExitCopyToMain, FileChoose_SetupCopyConfirm1,
FileChoose_SetupEraseSelect, FileChoose_EraseSelect, FileChoose_SetupCopyConfirm2,
FileChoose_SetupEraseConfirm1, FileChoose_SetupEraseConfirm2, FileChoose_CopyConfirm,
FileChoose_EraseConfirm, FileChoose_ExitToEraseSelect1, FileChoose_ReturnToCopyDest,
FileChoose_ExitToEraseSelect2, FileChoose_EraseAnim1, FileChoose_CopyAnim1,
FileChoose_EraseAnim2, FileChoose_EraseAnim3, FileChoose_CopyAnim2,
FileChoose_ExitEraseToMain, FileChoose_UnusedCM31, FileChoose_CopyAnim3,
FileChoose_RotateToNameEntry, FileChoose_UpdateKeyboardCursor, FileChoose_CopyAnim4,
FileChoose_StartNameEntry, FileChoose_RotateToMain, FileChoose_CopyAnim5,
FileChoose_RotateToOptions, FileChoose_UpdateOptionsMenu, FileChoose_ExitCopyToMain,
FileChoose_StartOptions, FileChoose_RotateToMain, FileChoose_SetupEraseSelect,
FileChoose_UnusedCMDelay, FileChoose_RotateToQuest, FileChoose_EraseSelect,
FileChoose_UpdateQuestMenu, FileChoose_StartQuestMenu, FileChoose_SetupEraseConfirm1,
FileChoose_RotateToMain, FileChoose_RotateToQuest, FileChoose_SetupEraseConfirm2,
FileChoose_RotateToBossRush, FileChoose_UpdateBossRushMenu, FileChoose_EraseConfirm,
FileChoose_StartBossRushMenu, FileChoose_RotateToQuest, FileChoose_ExitToEraseSelect1,
FileChoose_RotateToRandomizer, FileChoose_UpdateRandomizerMenu, FileChoose_ExitToEraseSelect2,
FileChoose_StartRandomizerMenu, FileChoose_RotateToQuest, FileChoose_EraseAnim1,
FileChoose_RotateToRandomizer, FileChoose_RotateToArchipelago, FileChoose_EraseAnim2,
FileChoose_UpdateArchipelagoMenu, FileChoose_StartArchipelagoMenu, FileChoose_EraseAnim3,
FileChoose_RotateToQuest, FileChoose_RotateToArchipelago FileChoose_ExitEraseToMain,
}; FileChoose_UnusedCM31,
FileChoose_RotateToNameEntry,
FileChoose_UpdateKeyboardCursor,
FileChoose_StartNameEntry,
FileChoose_RotateToMain,
FileChoose_RotateToOptions,
FileChoose_UpdateOptionsMenu,
FileChoose_StartOptions,
FileChoose_RotateToMain,
FileChoose_UnusedCMDelay,
FileChoose_RotateToQuest,
FileChoose_UpdateQuestMenu,
FileChoose_StartQuestMenu,
FileChoose_RotateToMain,
FileChoose_RotateToQuest,
FileChoose_RotateToBossRush,
FileChoose_UpdateBossRushMenu,
FileChoose_StartBossRushMenu,
FileChoose_RotateToQuest,
FileChoose_RotateToRandomizer,
FileChoose_UpdateRandomizerMenu,
FileChoose_StartRandomizerMenu,
FileChoose_RotateToQuest,
FileChoose_RotateToRandomizer,
FileChoose_RotateToArchipelago,
FileChoose_UpdateArchipelagoMenu,
FileChoose_StartArchipelagoMenu,
FileChoose_RotateToQuest,
FileChoose_RotateToArchipelago };
static void (*gConfigModeUpdateFuncsNES[])(GameState*) = { static void (*gConfigModeUpdateFuncsNES[])(GameState*) = { FileChoose_StartFadeIn,
FileChoose_StartFadeIn, FileChoose_FinishFadeIn, FileChoose_FinishFadeIn,
FileChoose_UpdateMainMenu, FileChoose_SetupCopySource, FileChoose_UpdateMainMenu,
FileChoose_SelectCopySource, FileChoose_SetupCopyDest1, FileChoose_SetupCopySource,
FileChoose_SetupCopyDest2, FileChoose_SelectCopyDest, FileChoose_SelectCopySource,
FileChoose_ExitToCopySource1, FileChoose_ExitToCopySource2, FileChoose_SetupCopyDest1,
FileChoose_SetupCopyConfirm1, FileChoose_SetupCopyConfirm2, FileChoose_SetupCopyDest2,
FileChoose_CopyConfirm, FileChoose_ReturnToCopyDest, FileChoose_SelectCopyDest,
FileChoose_CopyAnim1, FileChoose_CopyAnim2, FileChoose_ExitToCopySource1,
FileChoose_CopyAnim3, FileChoose_CopyAnim4, FileChoose_ExitToCopySource2,
FileChoose_CopyAnim5, FileChoose_ExitCopyToMain, FileChoose_SetupCopyConfirm1,
FileChoose_SetupEraseSelect, FileChoose_EraseSelect, FileChoose_SetupCopyConfirm2,
FileChoose_SetupEraseConfirm1, FileChoose_SetupEraseConfirm2, FileChoose_CopyConfirm,
FileChoose_EraseConfirm, FileChoose_ExitToEraseSelect1, FileChoose_ReturnToCopyDest,
FileChoose_ExitToEraseSelect2, FileChoose_EraseAnim1, FileChoose_CopyAnim1,
FileChoose_EraseAnim2, FileChoose_EraseAnim3, FileChoose_CopyAnim2,
FileChoose_ExitEraseToMain, FileChoose_UnusedCM31, FileChoose_CopyAnim3,
FileChoose_RotateToNameEntry, FileChoose_UpdateKeyboardCursorNES, FileChoose_CopyAnim4,
FileChoose_StartNameEntryNES, FileChoose_RotateToMain, FileChoose_CopyAnim5,
FileChoose_RotateToOptions, FileChoose_UpdateOptionsMenuNES, FileChoose_ExitCopyToMain,
FileChoose_StartOptionsNES, FileChoose_RotateToMain, FileChoose_SetupEraseSelect,
FileChoose_UnusedCMDelay, FileChoose_RotateToQuest, FileChoose_EraseSelect,
FileChoose_UpdateQuestMenu, FileChoose_StartQuestMenu, FileChoose_SetupEraseConfirm1,
FileChoose_RotateToMain, FileChoose_RotateToQuest, FileChoose_SetupEraseConfirm2,
FileChoose_RotateToBossRush, FileChoose_UpdateBossRushMenu, FileChoose_EraseConfirm,
FileChoose_StartBossRushMenu, FileChoose_RotateToQuest, FileChoose_ExitToEraseSelect1,
FileChoose_RotateToRandomizer, FileChoose_UpdateRandomizerMenu, FileChoose_ExitToEraseSelect2,
FileChoose_StartRandomizerMenu, FileChoose_RotateToQuest, FileChoose_EraseAnim1,
FileChoose_RotateToRandomizer, FileChoose_RotateToArchipelago, FileChoose_EraseAnim2,
FileChoose_UpdateArchipelagoMenu, FileChoose_StartArchipelagoMenu, FileChoose_EraseAnim3,
FileChoose_RotateToQuest, FileChoose_RotateToArchipelago FileChoose_ExitEraseToMain,
}; FileChoose_UnusedCM31,
FileChoose_RotateToNameEntry,
FileChoose_UpdateKeyboardCursorNES,
FileChoose_StartNameEntryNES,
FileChoose_RotateToMain,
FileChoose_RotateToOptions,
FileChoose_UpdateOptionsMenuNES,
FileChoose_StartOptionsNES,
FileChoose_RotateToMain,
FileChoose_UnusedCMDelay,
FileChoose_RotateToQuest,
FileChoose_UpdateQuestMenu,
FileChoose_StartQuestMenu,
FileChoose_RotateToMain,
FileChoose_RotateToQuest,
FileChoose_RotateToBossRush,
FileChoose_UpdateBossRushMenu,
FileChoose_StartBossRushMenu,
FileChoose_RotateToQuest,
FileChoose_RotateToRandomizer,
FileChoose_UpdateRandomizerMenu,
FileChoose_StartRandomizerMenu,
FileChoose_RotateToQuest,
FileChoose_RotateToRandomizer,
FileChoose_RotateToArchipelago,
FileChoose_UpdateArchipelagoMenu,
FileChoose_StartArchipelagoMenu,
FileChoose_RotateToQuest,
FileChoose_RotateToArchipelago };
/** /**
* Updates the alpha of the cursor to make it pulsate. * Updates the alpha of the cursor to make it pulsate.
@@ -2824,8 +2879,8 @@ void FileChoose_DrawWindowContents(GameState* thisx) {
// Show text to indicate randomizer is being generated. // Show text to indicate randomizer is being generated.
if (generating) { if (generating) {
Interface_DrawTextLine(this->state.gfxCtx, SohFileSelect_GetRandomizerSettingText(RSM_GENERATING, language), 70, Interface_DrawTextLine(this->state.gfxCtx, SohFileSelect_GetRandomizerSettingText(RSM_GENERATING, language),
(80 + 64), 255, 255, 255, textAlpha, 0.8f, true); 70, (80 + 64), 255, 255, 255, textAlpha, 0.8f, true);
} }
// If no randomizer is generated and "start randomizer" is selected, show text to explain why user can't start // If no randomizer is generated and "start randomizer" is selected, show text to explain why user can't start
@@ -2833,8 +2888,8 @@ void FileChoose_DrawWindowContents(GameState* thisx) {
if (!Randomizer_IsSeedGenerated() && !Randomizer_IsSpoilerLoaded() && if (!Randomizer_IsSeedGenerated() && !Randomizer_IsSpoilerLoaded() &&
this->randomizerIndex == RSM_START_RANDOMIZER) { this->randomizerIndex == RSM_START_RANDOMIZER) {
Interface_DrawTextLine(this->state.gfxCtx, Interface_DrawTextLine(this->state.gfxCtx,
SohFileSelect_GetRandomizerSettingText(RSM_NO_RANDOMIZER_GENERATED, language), 70, (80 + 64), SohFileSelect_GetRandomizerSettingText(RSM_NO_RANDOMIZER_GENERATED, language), 70,
240, 80, 80, textAlpha, 0.8f, true); (80 + 64), 240, 80, 80, textAlpha, 0.8f, true);
} }
uint16_t textOffset = 16 * this->randomizerIndex; uint16_t textOffset = 16 * this->randomizerIndex;
@@ -2869,14 +2924,13 @@ void FileChoose_DrawWindowContents(GameState* thisx) {
} }
Interface_DrawTextLine(this->state.gfxCtx, SohFileSelect_GetArchipelagoSettingText(index, language), 70, Interface_DrawTextLine(this->state.gfxCtx, SohFileSelect_GetArchipelagoSettingText(index, language), 70,
(80 + index * 16), textColorR, textColorG, textColorB, textAlpha, 0.8f, (80 + index * 16), textColorR, textColorG, textColorB, textAlpha, 0.8f, true);
true);
} }
// Server address text // Server address text
Interface_DrawTextLine(this->state.gfxCtx, Interface_DrawTextLine(this->state.gfxCtx,
SohFileSelect_GetArchipelagoSettingText(ASM_SERVER_ADDRESS, language), 70, SohFileSelect_GetArchipelagoSettingText(ASM_SERVER_ADDRESS, language), 70, 120, 255, 255,
120, 255, 255, 255, textAlpha, 0.8f, true); 255, textAlpha, 0.8f, true);
textIndex++; textIndex++;
Interface_DrawTextLine(this->state.gfxCtx, CVarGetString(CVAR_REMOTE_ARCHIPELAGO("ServerAddress"), "No Data"), Interface_DrawTextLine(this->state.gfxCtx, CVarGetString(CVAR_REMOTE_ARCHIPELAGO("ServerAddress"), "No Data"),
70, 130, 185, 185, 185, textAlpha, 0.8f, true); 70, 130, 185, 185, 185, textAlpha, 0.8f, true);
@@ -2890,10 +2944,10 @@ void FileChoose_DrawWindowContents(GameState* thisx) {
155, 185, 185, 185, textAlpha, 0.8f, true); 155, 185, 185, 185, textAlpha, 0.8f, true);
// Connection status text // Connection status text
Interface_DrawTextLine(this->state.gfxCtx, SohFileSelect_GetArchipelagoSettingText(ASM_STATUS, language), Interface_DrawTextLine(this->state.gfxCtx, SohFileSelect_GetArchipelagoSettingText(ASM_STATUS, language), 70,
70, 175, 255, 255, 255, textAlpha, 0.8f, true); 175, 255, 255, 255, textAlpha, 0.8f, true);
switch(CVarGetInteger(CVAR_REMOTE_ARCHIPELAGO("ConnectionStatus"), 0)) { switch (CVarGetInteger(CVAR_REMOTE_ARCHIPELAGO("ConnectionStatus"), 0)) {
case 0: // Not Connected case 0: // Not Connected
Interface_DrawTextLine(this->state.gfxCtx, Interface_DrawTextLine(this->state.gfxCtx,
SohFileSelect_GetArchipelagoSettingText(ASM_NOT_CONNECTED, language), 110, 175, SohFileSelect_GetArchipelagoSettingText(ASM_NOT_CONNECTED, language), 110, 175,
@@ -3346,10 +3400,8 @@ void FileChoose_ConfigModeDraw(GameState* thisx) {
this->configMode == CM_RANDOMIZER_SETTINGS_MENU || this->configMode == CM_ROTATE_TO_RANDOMIZER_SETTINGS_MENU || this->configMode == CM_RANDOMIZER_SETTINGS_MENU || this->configMode == CM_ROTATE_TO_RANDOMIZER_SETTINGS_MENU ||
this->configMode == CM_START_RANDOMIZER_SETTINGS_MENU || this->configMode == CM_START_RANDOMIZER_SETTINGS_MENU ||
this->configMode == CM_RANDOMIZER_SETTINGS_MENU_TO_QUEST || this->configMode == CM_RANDOMIZER_SETTINGS_MENU_TO_QUEST ||
this->configMode == CM_START_ARCHIPELAGO_SETTINGS_MENU || this->configMode == CM_START_ARCHIPELAGO_SETTINGS_MENU || this->configMode == CM_ARCHIPELAGO_SETTINGS_MENU ||
this->configMode == CM_ARCHIPELAGO_SETTINGS_MENU || this->configMode == CM_ROTATE_TO_ARCHIPELAGO_MENU || this->configMode == CM_ARCHIPELAGO_SETTINGS_TO_QUEST) {
this->configMode == CM_ROTATE_TO_ARCHIPELAGO_MENU ||
this->configMode == CM_ARCHIPELAGO_SETTINGS_TO_QUEST) {
// window // window
gDPPipeSync(POLY_OPA_DISP++); gDPPipeSync(POLY_OPA_DISP++);
gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);