mirror of
https://github.com/iDisaster/GTAConnected.git
synced 2026-03-12 19:31:48 +00:00
Add files via upload
This commit is contained in:
346
Trident/MD_Base_Setup/MDB_Menu_Functions.c
Normal file
346
Trident/MD_Base_Setup/MDB_Menu_Functions.c
Normal file
@@ -0,0 +1,346 @@
|
||||
/**
|
||||
* @ MD EXTEND+
|
||||
* @ Version MDv13 TRIDENT(Essentials Based)
|
||||
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
//! Menu Functions
|
||||
void menu_hold_pressed(uint p_id){
|
||||
uint button1;
|
||||
uint button2;
|
||||
|
||||
switch(p_id)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
button1 = BUTTON_DPAD_UP;
|
||||
button2 = KEY_UP_ARROW;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
button1 = BUTTON_DPAD_DOWN;
|
||||
button2 = KEY_DOWN_ARROW;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
{
|
||||
button1 = BUTTON_DPAD_LEFT;
|
||||
button2 = KEY_LEFT_ARROW;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
{
|
||||
button1 = BUTTON_DPAD_RIGHT;
|
||||
button2 = KEY_RIGHT_ARROW;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (IS_BUTTON_PRESSED(0, button1) || IS_GAME_KEYBOARD_KEY_PRESSED(button2)){
|
||||
press_id = p_id;
|
||||
if (hold_counter > 40){
|
||||
press_counter_timesby++;
|
||||
hold_counter = 0;
|
||||
}
|
||||
|
||||
hold_counter++;
|
||||
press_counter++;
|
||||
press_counter *= press_counter_timesby;
|
||||
}
|
||||
else if (press_id == p_id){
|
||||
press_counter_timesby = 1;
|
||||
hold_counter = 0;
|
||||
}
|
||||
}
|
||||
|
||||
bool menu_up_pressed(bool counter){
|
||||
if ((IS_BUTTON_JUST_PRESSED(0, BUTTON_DPAD_UP) || IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_UP_ARROW))
|
||||
|| (press_counter > 6 && (IS_BUTTON_PRESSED(0, BUTTON_DPAD_UP) || IS_GAME_KEYBOARD_KEY_PRESSED(KEY_UP_ARROW)))){
|
||||
SetBit(MD_Misc_OptionsBitSet, MD_MISC_RESET_COUNTER, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (counter)
|
||||
menu_hold_pressed(1);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool menu_down_pressed(bool counter){
|
||||
if ((IS_BUTTON_JUST_PRESSED(0, BUTTON_DPAD_DOWN) || IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_DOWN_ARROW))
|
||||
|| (press_counter > 6 && (IS_BUTTON_PRESSED(0, BUTTON_DPAD_DOWN) || IS_GAME_KEYBOARD_KEY_PRESSED(KEY_DOWN_ARROW)))){
|
||||
SetBit(MD_Misc_OptionsBitSet, MD_MISC_RESET_COUNTER, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (counter)
|
||||
menu_hold_pressed(2);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool menu_left_pressed(bool counter){
|
||||
if ((IS_BUTTON_JUST_PRESSED(0, DPAD_LEFT) || IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_LEFT_ARROW))
|
||||
|| (press_counter > 6 && (IS_BUTTON_PRESSED(0, DPAD_LEFT) || IS_GAME_KEYBOARD_KEY_PRESSED(KEY_LEFT_ARROW)))){
|
||||
SetBit(MD_Misc_OptionsBitSet, MD_MISC_RESET_COUNTER, true);
|
||||
return true;
|
||||
}
|
||||
if (counter)menu_hold_pressed(3);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool menu_right_pressed(bool counter){
|
||||
if ((IS_BUTTON_JUST_PRESSED(0, DPAD_RIGHT) || IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_RIGHT_ARROW))
|
||||
|| (press_counter > 6 && (IS_BUTTON_PRESSED(0, DPAD_RIGHT) || IS_GAME_KEYBOARD_KEY_PRESSED(KEY_RIGHT_ARROW)))){
|
||||
SetBit(MD_Misc_OptionsBitSet, MD_MISC_RESET_COUNTER, true);
|
||||
return true;
|
||||
}
|
||||
if (counter)menu_hold_pressed(4);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool menu_LB_pressed(bool counter){
|
||||
if ((IS_BUTTON_JUST_PRESSED(0, BUTTON_LB) || IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_L))
|
||||
|| (press_counter > 6 && (IS_BUTTON_PRESSED(0, BUTTON_LB) || IS_GAME_KEYBOARD_KEY_PRESSED(KEY_L)))){
|
||||
SetBit(MD_Misc_OptionsBitSet, MD_MISC_RESET_COUNTER, true);
|
||||
return true;
|
||||
}
|
||||
if (counter)menu_hold_pressed(3);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool menu_RB_pressed(bool counter){
|
||||
if ((IS_BUTTON_JUST_PRESSED(0, BUTTON_RB) || IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_R))
|
||||
|| (press_counter > 6 && (IS_BUTTON_PRESSED(0, BUTTON_RB) || IS_GAME_KEYBOARD_KEY_PRESSED(KEY_R)))){
|
||||
SetBit(MD_Misc_OptionsBitSet, MD_MISC_RESET_COUNTER, true);
|
||||
return true;
|
||||
}
|
||||
if(counter)menu_hold_pressed(4);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool menu_forward_pressed(void){
|
||||
if (IS_BUTTON_JUST_PRESSED(0, BUTTON_A) || IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_ENTER))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool menu_back_pressed(void){
|
||||
if (IS_BUTTON_JUST_PRESSED(0, BUTTON_B) || IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_BACKSPACE))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/**Crossbrowsing MenuItems**/
|
||||
//Keeping the type between 20 and 30 so if type is between this range it will crossbrowse.
|
||||
void AddFunction_CB(char* item_text){
|
||||
itemCount++;
|
||||
menu_item[itemCount].name = item_text;
|
||||
SetBit(MenuActionBitSet, (itemCount - 1), true);
|
||||
menu_item[itemCount].type = 21;//Former 12
|
||||
}
|
||||
void AddFunction_Num_CB(char* item_text,int maxval){
|
||||
itemCount++;
|
||||
menu_item[itemCount].name = item_text;
|
||||
SetBit(MenuActionBitSet, (itemCount - 1), true);
|
||||
menu_item[itemCount].num_val = 1;
|
||||
menu_item[itemCount].extra_val = maxval;
|
||||
menu_item[itemCount].type = 22; //Former 8
|
||||
}
|
||||
void AddFunction_Value_CB(char* item_text,int maxval){
|
||||
itemCount++;
|
||||
menu_item[itemCount].name = item_text;
|
||||
SetBit(MenuActionBitSet, (itemCount - 1), true);
|
||||
menu_item[itemCount].num_val = 1;
|
||||
menu_item[itemCount].extra_val = maxval;
|
||||
menu_item[itemCount].type = 23; //Former 9
|
||||
//Add_StringValue(itemCount);
|
||||
}
|
||||
void AddFunction_ValueLine_CB(int maxval){
|
||||
itemCount++;
|
||||
SetBit(MenuActionBitSet, (itemCount - 1), true);
|
||||
menu_item[itemCount].num_val = 1;
|
||||
menu_item[itemCount].extra_val = maxval;
|
||||
menu_item[itemCount].type = 24; //Former 15
|
||||
//Add_StringValue(itemCount);
|
||||
|
||||
}
|
||||
void AddBool_CB(char* item_text, bool item_bool){
|
||||
itemCount++;
|
||||
menu_item[itemCount].name = item_text;
|
||||
SetBit(MenuActionBitSet, (itemCount - 1), true);
|
||||
menu_item[itemCount].extra_val = item_bool;
|
||||
menu_item[itemCount].type = 25; //Former 3
|
||||
}
|
||||
|
||||
void AddBool_NoHighlight_CB(char* item_text){
|
||||
itemCount++;
|
||||
menu_item[itemCount].name = item_text;
|
||||
SetBit(MenuActionBitSet, (itemCount - 1), true);
|
||||
menu_item[itemCount].type = 26; //Former 12
|
||||
}
|
||||
|
||||
void AddGxt_Model_CB(uint item_gxt_hash){
|
||||
itemCount++;
|
||||
SetBit(MenuActionBitSet, (itemCount - 1), true);
|
||||
menu_item[itemCount].num_val = item_gxt_hash;
|
||||
menu_item[itemCount].type = 27; //Former 5
|
||||
}
|
||||
/**END**/
|
||||
|
||||
|
||||
void AddSubMenu(char* item_text){
|
||||
itemCount++;
|
||||
menu_item[itemCount].name = item_text;
|
||||
menu_item[itemCount].type = 13;
|
||||
}
|
||||
void AddPlayername(char* item_text){
|
||||
itemCount++;
|
||||
menu_item[itemCount].name = item_text;
|
||||
menu_item[itemCount].type = 7;
|
||||
}
|
||||
void Add_NotPresent(char* item_text){
|
||||
itemCount++;
|
||||
menu_item[itemCount].name = item_text;
|
||||
menu_item[itemCount].type = 6;
|
||||
}
|
||||
void Add_JumpOver(char* item_text){
|
||||
itemCount++;
|
||||
menu_item[itemCount].name = item_text;
|
||||
menu_item[itemCount].type = 10;
|
||||
}
|
||||
void Add_Error(char* item_text){
|
||||
itemCount++;
|
||||
menu_item[itemCount].name = item_text;
|
||||
menu_item[itemCount].type = 11;
|
||||
}
|
||||
void AddFunction(char* item_text){
|
||||
itemCount++;
|
||||
menu_item[itemCount].name = item_text;
|
||||
SetBit(MenuActionBitSet, (itemCount - 1), true);
|
||||
menu_item[itemCount].type = 12;
|
||||
}
|
||||
void AddFunction_Num(char* item_text,int maxval){
|
||||
itemCount++;
|
||||
menu_item[itemCount].name = item_text;
|
||||
SetBit(MenuActionBitSet, (itemCount - 1), true);
|
||||
menu_item[itemCount].num_val = 1;
|
||||
menu_item[itemCount].extra_val = maxval;
|
||||
menu_item[itemCount].type = 8;
|
||||
}
|
||||
void AddFunction_NumSphere(char* item_text,int maxval){
|
||||
itemCount++;
|
||||
menu_item[itemCount].name = item_text;
|
||||
SetBit(MenuActionBitSet, (itemCount - 1), true);
|
||||
menu_item[itemCount].num_val = Delete_Distance_Radius;
|
||||
menu_item[itemCount].extra_val = maxval;
|
||||
menu_item[itemCount].type = 14;
|
||||
}
|
||||
void AddFunction_Value(char* item_text,int maxval){
|
||||
itemCount++;
|
||||
menu_item[itemCount].name = item_text;
|
||||
SetBit(MenuActionBitSet, (itemCount - 1), true);
|
||||
menu_item[itemCount].num_val = 1;
|
||||
menu_item[itemCount].extra_val = maxval;
|
||||
menu_item[itemCount].type = 9;
|
||||
//Add_StringValue(itemCount);
|
||||
}
|
||||
void AddFunction_ValueLine(int maxval){
|
||||
itemCount++;
|
||||
SetBit(MenuActionBitSet, (itemCount - 1), true);
|
||||
menu_item[itemCount].num_val = 1;
|
||||
menu_item[itemCount].extra_val = maxval;
|
||||
menu_item[itemCount].type = 15;
|
||||
//Add_StringValue(itemCount);
|
||||
}
|
||||
void AddBool(char* item_text, bool item_bool){
|
||||
itemCount++;
|
||||
menu_item[itemCount].name = item_text;
|
||||
SetBit(MenuActionBitSet, (itemCount - 1), true);
|
||||
menu_item[itemCount].extra_val = item_bool;
|
||||
menu_item[itemCount].type = 3;
|
||||
}
|
||||
void AddBool_NoHighlight(char* item_text){
|
||||
itemCount++;
|
||||
menu_item[itemCount].name = item_text;
|
||||
SetBit(MenuActionBitSet, (itemCount - 1), true);
|
||||
menu_item[itemCount].type = 12;
|
||||
}
|
||||
void AddGxt_Model(uint item_gxt_hash){
|
||||
itemCount++;
|
||||
SetBit(MenuActionBitSet, (itemCount - 1), true);
|
||||
menu_item[itemCount].num_val = item_gxt_hash;
|
||||
menu_item[itemCount].type = 5;
|
||||
}
|
||||
void Menu_Add_Item_Sco(bool item_bool){
|
||||
menu_item[itemCount].extra_val = item_bool;
|
||||
menu_item[itemCount].type = 4;
|
||||
}
|
||||
void Menu_Add_Action(void){
|
||||
SetBit(MenuActionBitSet, (itemCount - 1), true);
|
||||
}
|
||||
void Load_Sco(char* item_text, char* item_script){
|
||||
//Make an item type for this
|
||||
if (DOES_SCRIPT_EXIST(item_script)){
|
||||
AddSubMenu(item_text);
|
||||
Essentials_script[itemCount] = item_script;
|
||||
bool enabled;
|
||||
if (GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT(item_script) == 1)
|
||||
enabled = true;
|
||||
Menu_Add_Item_Sco(enabled);
|
||||
Menu_Add_Action();
|
||||
}
|
||||
else{
|
||||
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_SHOW_MISSING_SCO)){
|
||||
Add_NotPresent(item_text);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Essentials_apply(void){
|
||||
if (menu_item[SelectedItem].extra_val){
|
||||
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME(Essentials_script[SelectedItem]);
|
||||
menu_item[SelectedItem].extra_val = false;
|
||||
}
|
||||
else{
|
||||
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME(Essentials_script[SelectedItem]);
|
||||
START_NEW_SCRIPT(Essentials_script[SelectedItem], 1024);
|
||||
MARK_SCRIPT_AS_NO_LONGER_NEEDED(Essentials_script[SelectedItem]);
|
||||
Menu_Has_Sco_Loaded = false;
|
||||
menu_item[SelectedItem].extra_val = true;
|
||||
}
|
||||
}
|
||||
|
||||
void Modmanager(void){
|
||||
if(!Menu_Has_Sco_Loaded && !menu_item[SelectedItem].extra_val)load_script = Essentials_script[SelectedItem];
|
||||
else Essentials_apply();
|
||||
}
|
||||
|
||||
void Reset_Menu(void){
|
||||
int I;
|
||||
for (I = 1; I < (itemCount + 1); I++){
|
||||
menu_item[I].name = null_string;
|
||||
menu_item[I].type = 0;
|
||||
menu_item[I].num_val = 1;
|
||||
menu_item[I].extra_val = 0;
|
||||
SetBit(MenuActionBitSet, (I - 1), false);
|
||||
}
|
||||
Menu_Start_Pos_y = menu_consts_start_y;
|
||||
menu_max = menu_consts_max;
|
||||
itemCount = 0;
|
||||
}
|
||||
|
||||
void Base_Error(uint Error_id){
|
||||
//if (menu_item[SelectedItem].action) Menu_Action_Error = true;
|
||||
if(GetBit(MenuActionBitSet,SelectedItem - 1))SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_ACTION_ERROR, true);
|
||||
Reset_Menu();
|
||||
MENU_HEADER = Essentials_Error;
|
||||
if (Error_id == MODMANAGER_ERROR_ID_INVALID)AddSubMenu(Essentials_Error_invalid);
|
||||
else if (Error_id == MODMANAGER_ERROR_ID_SCRIPT)AddSubMenu(Essentials_Error_script);
|
||||
AddSubMenu(Essentials_Error_goback);
|
||||
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR, true);
|
||||
PLAY_AUDIO_EVENT("FRONTEND_MENU_ERROR");
|
||||
}
|
||||
Reference in New Issue
Block a user