示例#1
0
文件: navigate.c 项目: mikekap/wine
static HRESULT WINAPI BindStatusCallback_OnProgress(IBindStatusCallback *iface,
        ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText)
{
    BindStatusCallback *This = impl_from_IBindStatusCallback(iface);

    TRACE("(%p)->(%d %d %d %s)\n", This, ulProgress, ulProgressMax, ulStatusCode,
          debugstr_w(szStatusText));

    switch(ulStatusCode) {
    case BINDSTATUS_REDIRECTING:
        return set_dochost_url(This->doc_host, szStatusText);
    case BINDSTATUS_BEGINDOWNLOADDATA:
        set_status_text(This, szStatusText); /* FIXME: "Start downloading from site: %s" */
        return S_OK;
    case BINDSTATUS_ENDDOWNLOADDATA:
        set_status_text(This, szStatusText); /* FIXME: "Downloading from site: %s" */
        return S_OK;
    case BINDSTATUS_CLASSIDAVAILABLE:
    case BINDSTATUS_MIMETYPEAVAILABLE:
    case BINDSTATUS_BEGINSYNCOPERATION:
    case BINDSTATUS_ENDSYNCOPERATION:
        return S_OK;
    default:
        FIXME("status code %u\n", ulStatusCode);
    }

    return S_OK;
}
void WantedSymbolItem<T>::handleLeftPress()
{
	BOOL bPlayerExists = ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID());
	Player player = PLAYER::PLAYER_ID();
	int currentLevel = PLAYER::GET_PLAYER_WANTED_LEVEL(player);
	if (bPlayerExists && currentLevel > 0)
	{
		PLAYER::SET_PLAYER_WANTED_LEVEL(player, --currentLevel, 0);
		PLAYER::SET_PLAYER_WANTED_LEVEL_NOW(player, 0);
		setFrozenWantedLvl(currentLevel);
		std::stringstream ss;
		if (currentLevel > 0)
		{
			ss << "Wanted Level: " << currentLevel << " Star";
			if (currentLevel > 1)
			{
				ss << "s"; //plural
			}
		}
		else
		{
			ss << "Wanted Level Cleared";
			PLAYER::SET_MAX_WANTED_LEVEL(5);
			if (getFrozenWantedFeature())
			{
				setFrozenWantedFeature(false);
				set_status_text("Wanted Level Unfrozen");
			}
		}
		set_status_text(ss.str());
	}
}
bool process_paint_menu_liveries()
{
	// common variables
	BOOL bPlayerExists = ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID());

	if (!bPlayerExists)
	{
		return false;
	}

	Player player = PLAYER::PLAYER_ID();
	Ped playerPed = PLAYER::PLAYER_PED_ID();

	if (!PED::IS_PED_IN_ANY_VEHICLE(playerPed, 0))
	{
		set_status_text("Player isn't in a vehicle");
		return false;
	}

	Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);

	int count = VEHICLE::GET_VEHICLE_LIVERY_COUNT(veh);
	if (count <= 1)
	{
		set_status_text("No liveries for this vehicle");
	}

	std::vector<MenuItem<int>*> menuItems;

	for (int i = 0; i < count; i++)
	{
		std::string modItemNameStr;

		char* modItemNameChr = VEHICLE::GET_LIVERY_NAME(veh, i);
		if (modItemNameChr == NULL)
		{
			std::ostringstream ss;
			ss << "Livery #" << (i+1);
			modItemNameStr = ss.str();
		}
		else
		{
			modItemNameStr = std::string(modItemNameChr);
		}

		MenuItem<int> *item = new MenuItem<int>();
		item->caption = modItemNameStr;
		item->value = i;
		item->isLeaf = false;
		menuItems.push_back(item);
	}

	int currentSelection = VEHICLE::GET_VEHICLE_LIVERY(veh);
	return draw_generic_menu<int>(menuItems, &currentSelection, "Liveries", onconfirm_livery, onhighlight_livery, NULL, vehicle_menu_interrupt);
}
bool process_neon_lights_menu() {
	// common variables
	BOOL bPlayerExists = ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID());

	if (!bPlayerExists)
	{
		return false;
	}

	Player player = PLAYER::PLAYER_ID();
	Ped playerPed = PLAYER::PLAYER_PED_ID();

	if (!PED::IS_PED_IN_ANY_VEHICLE(playerPed, 0))	{
		set_status_text("Player isn't in a vehicle");
		return false;
	}

	Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(PLAYER::PLAYER_PED_ID()); // Get current vehicle

	if (!is_this_a_car(veh)) {
		set_status_text("Can't add neon lights to this vehicle");
		return false;
	}

	std::vector<MenuItem<int>*> menuItems;

	MenuItem<int> *allLightsToggle = new MenuItem<int>();
	allLightsToggle->caption = "Toggle All Neon Lights";
	allLightsToggle->value = -1;
	allLightsToggle->isLeaf = true;
	menuItems.push_back(allLightsToggle);

	for (int loc = 0; loc <= 3; loc++)
	{
		FunctionDrivenToggleMenuItem<int> *neonLightsToggle = new FunctionDrivenToggleMenuItem<int>();
		std::ostringstream ss;
		ss << "Enable Neons: " << getNeonPositionLabel(loc);
		neonLightsToggle->caption = ss.str();
		neonLightsToggle->getter_call = is_neonLights;
		neonLightsToggle->setter_call = set_neonLights;
		neonLightsToggle->extra_arguments.push_back(loc);
		menuItems.push_back(neonLightsToggle);
	}

	MenuItem<int> *chooseColourAll = new MenuItem<int>();
	chooseColourAll->caption = "Choose Colour";
	chooseColourAll->value = -2;
	chooseColourAll->isLeaf = false;
	menuItems.push_back(chooseColourAll);

	return draw_generic_menu<int>(menuItems, &menuIndex, "Neon Lights", onconfirm_neon_menu, NULL, NULL, vehicle_menu_interrupt);
}
void set_neonLights(bool applied, std::vector<int> extras)
{
	int loc = extras.at(0);
	Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(PLAYER::PLAYER_PED_ID());
	int rCol, bCol, gCol = 0;
	bool lightFound = false;

	if (!is_this_a_car(veh))
	{
		set_status_text("Can't add neon lights to this vehicle");
		return;
	}

	if (applied) // Turn on the neon lights
	{
		VEHICLE::_SET_VEHICLE_NEON_LIGHT_ENABLED(veh, loc, true);
		VEHICLE::_GET_VEHICLE_NEON_LIGHTS_COLOUR(veh, &rCol, &bCol, &gCol);
		if (!rCol && !bCol && !gCol)
		{
			NeonLightsColor col = NEON_COLORS.at(0);
			VEHICLE::_SET_VEHICLE_NEON_LIGHTS_COLOUR(veh, col.rVal, col.gVal, col.bVal);
		}
	}
	else
	{
		// Turn off the lights
		VEHICLE::_SET_VEHICLE_NEON_LIGHT_ENABLED(veh, loc, false);
	}
}
bool onconfirm_skinchanger_menu(int selection, std::string caption, int value)
{
	skinMainMenuPosition = selection;

	switch (value)
	{
	case 0: //Players
		process_skinchanger_choices_players();
		break;
	case 1: //Animals
		process_skinchanger_choices_animals();
		break;
	case 2: //Misc
		process_skinchanger_choices_misc();
		break;
	case 3: //Detail
		process_skinchanger_detail_menu();
		break;
	case 4: //Reset
		Ped playerPed = PLAYER::PLAYER_PED_ID();
		PED::SET_PED_DEFAULT_COMPONENT_VARIATION(playerPed);
		set_status_text("Using default model skin");
		break;
	}
	return false;
}
示例#7
0
void check_player_model()
{
	// common variables
	Player player = PLAYER::PLAYER_ID();
	Ped playerPed = PLAYER::PLAYER_PED_ID();

	if (!ENTITY::DOES_ENTITY_EXIST(playerPed)) return;

	if (ENTITY::IS_ENTITY_DEAD(playerPed) && is_player_reset_on_death() )
	{
		bool found = false;
		Hash model = ENTITY::GET_ENTITY_MODEL(playerPed);

		for (int i = 0; i < (sizeof(player_models) / sizeof(player_models[0])); i++)
		{
			if (GAMEPLAY::GET_HASH_KEY((char *)player_models[i]) == model)
			{
				found = true;
				break;
			}
		}

		if (!found)
		{
			set_status_text("Resetting player model");
			applyChosenSkin("player_zero");
		}

		// wait until player is ressurected
		while (ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID()))
		{
			WAIT(0);
		}
	}
}
示例#8
0
文件: callbacks.c 项目: badcodes/c
void
on_imageUri_activate                   (GtkEntry        *entry,
                                        gpointer         user_data)
{
	gchar* imgPath;
	g_object_get((GObject*)user_data,"text",&imgPath,NULL);
	if(imgPath != NULL) {
		int result;
		set_status_text(imgPath);
		if ( (result=load_image_file(imgPath))!= 0)
			result=load_image_http(imgPath);
		if (result!=0) 
			set_status_text("Can't load image.");
	}
	return;	
}
示例#9
0
static void
set_font_str(GtkWidget *w, gchar *fontstr)
{
    GdkFont *font;
    gchar   *msg;

    if (determine_use_fontset())
    {
        font = gdk_fontset_load(fontstr);
    }
    else
    {
        font = gdk_font_load(fontstr);
    }
    
    if (font != NULL)
    {
        set_font(w, font);
    }
    else
    {
        msg = g_strdup_printf(_("Can't load font %s"), fontstr);
        set_status_text(msg);
        g_free(msg);
    }   
}
示例#10
0
文件: callbacks.c 项目: badcodes/c
void
on_btnOpen_clicked                     (GtkButton       *button,
                                        gpointer         user_data)
{
	gchar* filename;
	g_object_get(button,"text",&filename,NULL);
	
	GtkWidget* fileDialog = gtk_file_chooser_dialog_new ("Open File",
				      NULL,
				      GTK_FILE_CHOOSER_ACTION_OPEN,
				      GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
				      GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
				      NULL);
	
	gtk_file_chooser_set_filename((GtkFileChooser*)fileDialog,filename);
	
	if (gtk_dialog_run((GtkDialog*) fileDialog) == GTK_RESPONSE_ACCEPT) {
		filename = gtk_file_chooser_get_filename((GtkFileChooser*) fileDialog);
		g_object_set(button,"text",filename,NULL);
		set_status_text(filename);
		load_image_file(filename);
		g_free(filename);
	}
	gtk_widget_destroy(fileDialog);
}
示例#11
0
static void tap_handler(AccelAxisType axis, int32_t direction) {
  APP_LOG(APP_LOG_LEVEL_DEBUG, "Shake, oh shake the Pebble watch... state=%d", s_popup_state);
  if (2 == s_popup_state) {
    APP_LOG(APP_LOG_LEVEL_DEBUG, "Popup already open... closing.");
    app_timer_cancel(s_popup_timer_handle);
    popup_timer_callback(NULL);
    return;
  }

  if (1 == s_popup_state) {
    APP_LOG(APP_LOG_LEVEL_DEBUG, "Popup pending... opening.");
    s_popup_state = 2;
    app_timer_cancel(s_popup_timer_handle);

    update_popup_time();
    window_stack_push(s_popup_window, true);
  
    s_popup_timer_handle = app_timer_register(POPUP_TIMEOUT_MS, popup_timer_callback, NULL);
    return;
  }
  
  APP_LOG(APP_LOG_LEVEL_DEBUG, "No popup state... set pending.");
  s_popup_state = 1;
  s_popup_timer_handle = app_timer_register(POPUP_PENDING_TIMEOUT_MS, popup_timer_callback, NULL);

  set_status_text("*");
  update_status();
}
示例#12
0
static void main_window_load(Window *window) {
  int left = 0;

  left += LAYER_STATUS_LEFT_GAP;
  s_status_bt_layer = bitmap_layer_create(GRect(left, 0, LAYER_STATUS_BMP_WIDTH, LAYER_STATUS_HEIGHT));
  bitmap_layer_set_alignment(s_status_bt_layer, GAlignRight);
  bitmap_layer_set_compositing_mode(s_status_bt_layer, GCompOpAssignInverted);
  layer_add_child(window_get_root_layer(window), (Layer *) s_status_bt_layer);
  
  left += LAYER_STATUS_BMP_WIDTH + LAYER_STATUS_GAP;
  s_status_battery_layer = bitmap_layer_create(GRect(left, 0,
                                                     LAYER_STATUS_BMP_WIDTH, LAYER_STATUS_HEIGHT));\
  bitmap_layer_set_alignment(s_status_battery_layer, GAlignLeft);
  bitmap_layer_set_compositing_mode(s_status_battery_layer, GCompOpAssignInverted);
  layer_add_child(window_get_root_layer(window), (Layer *) s_status_battery_layer);

  left += LAYER_STATUS_BMP_WIDTH;
  s_status_charge_layer = bitmap_layer_create(GRect(left, 0,
                                                    LAYER_STATUS_BMP_WIDTH, LAYER_STATUS_HEIGHT));\
  bitmap_layer_set_alignment(s_status_charge_layer, GAlignLeft);
  bitmap_layer_set_compositing_mode(s_status_charge_layer, GCompOpAssignInverted);
  layer_add_child(window_get_root_layer(window), (Layer *) s_status_charge_layer);

  left += LAYER_STATUS_BMP_WIDTH;
  s_status_text_layer = create_text_layer(window, GRect(left, 0, LAYER_STATUS_TEXT_WIDTH, LAYER_STATUS_HEIGHT));
  text_layer_set_text_alignment(s_status_text_layer, GAlignRight);
  set_status_text("");

}
示例#13
0
文件: navigate.c 项目: joobn72/wine
static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallback *iface,
        HRESULT hresult, LPCWSTR szError)
{
    BindStatusCallback *This = impl_from_IBindStatusCallback(iface);

    TRACE("(%p)->(%08x %s)\n", This, hresult, debugstr_w(szError));

    set_status_text(This, 0, emptyW);

    if(!This->doc_host)
        return S_OK;

    if(!This->doc_host->olecmd)
        notify_download_state(This->doc_host, FALSE);
    if(FAILED(hresult))
        handle_navigation_error(This->doc_host, hresult, This->url, NULL);

    IOleClientSite_Release(&This->doc_host->IOleClientSite_iface);
    This->doc_host = NULL;

    IBinding_Release(This->binding);
    This->binding = NULL;

    return S_OK;
}
示例#14
0
int filterException(int code, PEXCEPTION_POINTERS ex)
{
	set_status_text("Whoops, ENT crashed!");

	write_text_to_log_file("ScriptMain exception");
	make_minidump(ex);
	return EXCEPTION_EXECUTE_HANDLER;
}
void set_custom_tyres(bool applied, std::vector<int> extras)
{
	Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(PLAYER::PLAYER_PED_ID());
	VEHICLE::SET_VEHICLE_MOD_KIT(veh, 0);
	int currmod = VEHICLE::GET_VEHICLE_MOD(veh, 23);
	VEHICLE::SET_VEHICLE_MOD(veh, 23, currmod, applied); //Add Custom Tires
	VEHICLE::SET_VEHICLE_MOD(veh, 24, currmod, applied); //Add Custom Tires (For bike rear wheels if they exist)
	set_status_text("Changed Tires");
}
void reset_globals()
{
	reset_skin_globals();

	reset_vehicle_globals();

	reset_teleporter_globals();

	reset_weapon_globals();

	reset_world_globals();

	activeLineIndexMain			=
	activeLineIndexPlayer		=
	activeLineIndexWantedFreeze	=
	frozenWantedLevel			=	0;

	featurePlayerInvincible			=
	featurePlayerNeverWanted		=
	featurePlayerIgnoredByPolice			=
	featurePlayerIgnoredByAll =
	featurePlayerUnlimitedAbility	=
	featurePlayerNoNoise			=
	featurePlayerFastSwim			=
	featurePlayerFastRun			=
	featurePlayerSuperJump			=
	featurePlayerInvisible			=
	featurePlayerDrunk =
	featurePlayerRadio				=
	featureRadioAlwaysOff =
	featureMiscLockRadio			=
	featureMiscHideHud				=	
	featureWantedLevelFrozen		=	false;

	featurePlayerResetOnDeath = true;
	featureBlockInputInMenu = true;
	featureVehInvulnIncludesCosmetic = true;

	featurePlayerInvincibleUpdated =
	featurePlayerNeverWantedUpdated =
	featurePlayerIgnoredByPoliceUpdated =
	featurePlayerIgnoredByAllUpdated =
	featurePlayerNoNoiseUpdated =
	featurePlayerFastSwimUpdated =
	featurePlayerFastRunUpdated =
	featureRadioAlwaysOffUpdated =
	featurePlayerRadioUpdated =
	featurePlayerDrunkUpdated =
	featurePlayerInvisibleUpdated = true;

	set_status_text("Reset All Settings");

	DWORD myThreadID;
	HANDLE myHandle = CreateThread(0, 0, save_settings_thread, 0, 0, &myThreadID);
	CloseHandle(myHandle);

}
bool process_paint_menu_special(int category)
{
	Ped playerPed = PLAYER::PLAYER_PED_ID();
	Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
	std::vector<MenuItem<std::string>*> menuItems;
	int paint1, paint2, paint3;
	VEHICLE::GET_VEHICLE_MOD_COLOR_1(veh, &paint1, &paint2, &paint3);
	int index = 0;

	if (category == 1)
	{
		int curWheel = VEHICLE::GET_VEHICLE_MOD(veh, 23);
		if (curWheel == -1)
		{
			set_status_text("You can't repaint the car's default wheels");
			return false;
		}
	}

	if (paint1 == 3 || paint1 == 4 || paint1 == 5)
	{
		set_status_text("Pearl cannot be applied over this paint type");
		return false;
	}

	else
	{
		for (int i = 0; i < VOV_SPECIAL_VALUES[category].size(); i++)
		{
			MenuItem<std::string> *item = new MenuItem<std::string>();
			item->caption = VOV_SPECIAL_CAPTIONS[category][i];
			item->value = VOV_SPECIAL_VALUES[category][i];
			menuItems.push_back(item);
		}

		if (::whichpart == 2) //index as pearlescent top coat color
		{
			index = paint3;
			if (index > -1){ index = paint3 + 1; }
		}
	}
	return draw_generic_menu<std::string>(menuItems, &index, "Select Color", onconfirm_color_menu_selection, onhighlight_color_menu_selection, NULL);
}
示例#18
0
文件: navigate.c 项目: RPG-7/reactos
static HRESULT WINAPI BindStatusCallback_OnProgress(IBindStatusCallback *iface,
        ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText)
{
    BindStatusCallback *This = impl_from_IBindStatusCallback(iface);
    DWORD status_code;

    TRACE("(%p)->(%d %d %d %s)\n", This, ulProgress, ulProgressMax, ulStatusCode,
          debugstr_w(szStatusText));

    switch(ulStatusCode) {
    case BINDSTATUS_REDIRECTING:
        return set_dochost_url(This->doc_host, szStatusText);
    case BINDSTATUS_BEGINDOWNLOADDATA:
        set_status_text(This, ulStatusCode, szStatusText);
        status_code = get_http_status_code(This->binding);
        if(status_code != HTTP_STATUS_OK)
            handle_navigation_error(This->doc_host, status_code, This->url, NULL);
        return S_OK;

    case BINDSTATUS_FINDINGRESOURCE:
    case BINDSTATUS_ENDDOWNLOADDATA:
    case BINDSTATUS_SENDINGREQUEST:
        set_status_text(This, ulStatusCode, szStatusText);
        return S_OK;

    case BINDSTATUS_CONNECTING:
    case BINDSTATUS_CACHEFILENAMEAVAILABLE:
    case BINDSTATUS_CLASSIDAVAILABLE:
    case BINDSTATUS_MIMETYPEAVAILABLE:
    case BINDSTATUS_BEGINSYNCOPERATION:
    case BINDSTATUS_ENDSYNCOPERATION:
        return S_OK;
    default:
        FIXME("status code %u\n", ulStatusCode);
    }

    return S_OK;
}
示例#19
0
void main()
{	
	//reset_globals();

	setGameInputToEnabled(true, true);
	setAirbrakeRelatedInputToBlocked(false, true);

	write_text_to_log_file("Setting up calls");

	set_periodic_feature_call(update_features);

	write_text_to_log_file("Loading settings");

	load_settings();

	init_vehicle_feature();

	write_text_to_log_file("Loaded settings OK");

	// this creates a new locale based on the current application default
	// (which is either the one given on startup, but can be overriden with
	// std::locale::global) - then extends it with an extra facet that 
	// controls numeric output.
	std::locale comma_locale(std::locale(), new comma_numpunct());

	// tell cout to use our new locale.
	std::cout.imbue(comma_locale);
	
	set_status_text("~HUD_COLOUR_MENU_YELLOW~ENT ~HUD_COLOUR_WHITE~is ready!");

	while (true)
	{
		if (trainer_switch_pressed())
		{
			menu_beep();
			set_menu_showing(true);
			process_main_menu();
			set_menu_showing(false);
		}
		else if (airbrake_switch_pressed())
		{
			menu_beep();
			process_airbrake_menu();
		}

		update_features();

		WAIT(0);
	}
}
示例#20
0
void reset_globals()
{
	reset_skin_globals();

	reset_vehicle_globals();

	reset_teleporter_globals();

	reset_weapon_globals();

	reset_world_globals();

	reset_misc_globals();

	activeLineIndexMain			=
	activeLineIndexPlayer		=
	activeLineIndexWantedFreeze	=
	frozenWantedLevel			=	0;

	featurePlayerDrunk =
	featurePlayerInvincible			=
	featurePlayerNeverWanted		=
	featurePlayerIgnoredByPolice			=
	featurePlayerIgnoredByAll =
	featurePlayerUnlimitedAbility	=
	featurePlayerNoNoise			=
	featurePlayerFastSwim			=
	featurePlayerFastRun			=
	featurePlayerSuperJump			=
	featurePlayerInvisible			=
	featureWantedLevelFrozen		=	false;

	featurePlayerInvincibleUpdated =
	featurePlayerNeverWantedUpdated =
	featurePlayerIgnoredByPoliceUpdated =
	featurePlayerIgnoredByAllUpdated =
	featurePlayerNoNoiseUpdated =
	featurePlayerFastSwimUpdated =
	featurePlayerFastRunUpdated =
	featurePlayerDrunkUpdated =
	featurePlayerInvisibleUpdated = true;

	set_status_text("Reset All Settings");

	DWORD myThreadID;
	HANDLE myHandle = CreateThread(0, 0, save_settings_thread, 0, 0, &myThreadID);
	CloseHandle(myHandle);

}
示例#21
0
static void popup_timer_callback(void *data) {
  APP_LOG(APP_LOG_LEVEL_DEBUG, "Popup timer callback: %d", s_popup_state);
  // State 0: do nothing, probably a race condition
  // State 1: Pending timed out, so return to state 0
  if (2 == s_popup_state) {
    // State 2: Close the window, return to state 0
    window_stack_pop(true);
  }
  
  APP_LOG(APP_LOG_LEVEL_DEBUG, "Clearing popup state");
  s_popup_state = 0;

  set_status_text("");
  update_status();
}
void CashItem<T>::onConfirm()
{
	for (int i = 0; i < 3; i++)
	{
		char statNameFull[32];
		sprintf_s(statNameFull, "SP%d_TOTAL_CASH", i);
		Hash hash = GAMEPLAY::GET_HASH_KEY(statNameFull);
		int newAmount;
		STATS::STAT_GET_INT(hash, &newAmount, -1);
		newAmount += cash;
		if (newAmount > INT_MAX) // Check for overflow, just in case
			newAmount = INT_MAX;
		STATS::STAT_SET_INT(hash, newAmount, 1);
	}
	set_status_text("Cash Added");
}
示例#23
0
文件: navigate.c 项目: mikekap/wine
static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallback *iface,
        HRESULT hresult, LPCWSTR szError)
{
    BindStatusCallback *This = impl_from_IBindStatusCallback(iface);

    TRACE("(%p)->(%08x %s)\n", This, hresult, debugstr_w(szError));

    set_status_text(This, emptyW);

    if(This->doc_host) {
        IOleClientSite_Release(&This->doc_host->IOleClientSite_iface);
        This->doc_host = NULL;
    }

    return S_OK;
}
bool process_paint_menu()
{
	// common variables
	BOOL bPlayerExists = ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID());

	if (!bPlayerExists)
	{
		return false;
	}

	Player player = PLAYER::PLAYER_ID();
	Ped playerPed = PLAYER::PLAYER_PED_ID();

	if (!PED::IS_PED_IN_ANY_VEHICLE(playerPed, 0))
	{
		set_status_text("Player isn't in a vehicle");
		return false;
	}

	Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
	int liveryCount = VEHICLE::GET_VEHICLE_LIVERY_COUNT(veh);

	std::vector<MenuItem<int>*> menuItems;

	for (int i = 0; i < MENU_PAINT_WHAT.size(); i++)
	{
		MenuItem<int> *item = new MenuItem<int>();
		item->caption = MENU_PAINT_WHAT[i];
		item->value = i;
		item->isLeaf = false;
		menuItems.push_back(item);
	}

	if (liveryCount > 1)
	{
		std::ostringstream ss;
		ss << "Liveries (" << liveryCount << ")";
		MenuItem<int> *item = new MenuItem<int>();
		item->caption = ss.str();
		item->value = -1;
		item->isLeaf = false;
		menuItems.push_back(item);
	}

	return draw_generic_menu<int>(menuItems, 0, "Choose which part to paint", onconfirm_paint_menu, NULL, NULL, vehicle_menu_interrupt);
}
示例#25
0
void carModder()
{
    Ped playerPed = PLAYER::PLAYER_PED_ID();
    Any player = PLAYER::GET_PLAYER_PED(playerPed);
    BOOL playerExists = ENTITY::DOES_ENTITY_EXIST(playerPed);

    if (playerExists) {
        if (PED::IS_PED_IN_ANY_VEHICLE(playerPed, false)) {
            Any veh = PED::GET_VEHICLE_PED_IS_IN(playerPed, true);
            VEHICLE::SET_VEHICLE_FIXED(PED::GET_VEHICLE_PED_IS_USING(playerPed));
            VEHICLE::SET_VEHICLE_DIRT_LEVEL(veh, 0);
            VEHICLE::SET_VEHICLE_TYRES_CAN_BURST(veh, false);
            VEHICLE::SET_VEHICLE_MOD_KIT(veh, 0);
            //VEHICLE::SET_VEHICLE_COLOURS(veh, 120, 120); //color
            VEHICLE::TOGGLE_VEHICLE_MOD(veh, 18, true); //turbo
            VEHICLE::TOGGLE_VEHICLE_MOD(veh, 22, true); //xenon
            VEHICLE::SET_VEHICLE_MOD(veh, 0, VEHICLE::GET_NUM_VEHICLE_MODS(veh, 0) - 1, true); //spoiler
            VEHICLE::SET_VEHICLE_MOD(veh, 1, VEHICLE::GET_NUM_VEHICLE_MODS(veh, 1) - 1, true); //frontbumper
            VEHICLE::SET_VEHICLE_MOD(veh, 2, VEHICLE::GET_NUM_VEHICLE_MODS(veh, 2) - 1, true); //rearbumper
            VEHICLE::SET_VEHICLE_MOD(veh, 3, VEHICLE::GET_NUM_VEHICLE_MODS(veh, 3) - 1, true); //side skirt
            VEHICLE::SET_VEHICLE_MOD(veh, 4, VEHICLE::GET_NUM_VEHICLE_MODS(veh, 4) - 1, true); //exhaust
            VEHICLE::SET_VEHICLE_MOD(veh, 5, VEHICLE::GET_NUM_VEHICLE_MODS(veh, 5) - 1, true); //frame
            VEHICLE::SET_VEHICLE_MOD(veh, 6, VEHICLE::GET_NUM_VEHICLE_MODS(veh, 6) - 1, true); //grill
            VEHICLE::SET_VEHICLE_MOD(veh, 7, VEHICLE::GET_NUM_VEHICLE_MODS(veh, 7) - 1, true); //hood
            VEHICLE::SET_VEHICLE_MOD(veh, 8, VEHICLE::GET_NUM_VEHICLE_MODS(veh, 8) - 1, true); //fender
            VEHICLE::SET_VEHICLE_MOD(veh, 9, VEHICLE::GET_NUM_VEHICLE_MODS(veh, 9) - 1, true); //right fender
            VEHICLE::SET_VEHICLE_MOD(veh, 10, VEHICLE::GET_NUM_VEHICLE_MODS(veh, 10) - 1, true); //roof
            VEHICLE::SET_VEHICLE_MOD(veh, 11, VEHICLE::GET_NUM_VEHICLE_MODS(veh, 11) - 1, true); //engine
            VEHICLE::SET_VEHICLE_MOD(veh, 12, VEHICLE::GET_NUM_VEHICLE_MODS(veh, 12) - 1, true); //brakes
            VEHICLE::SET_VEHICLE_MOD(veh, 13, VEHICLE::GET_NUM_VEHICLE_MODS(veh, 13) - 1, true); //tranny
            //VEHICLE::SET_VEHICLE_MOD(veh, 14, 14, true); //horn
            VEHICLE::SET_VEHICLE_MOD(veh, 15, VEHICLE::GET_NUM_VEHICLE_MODS(veh, 15) - 1, true); //suspension
            VEHICLE::SET_VEHICLE_MOD(veh, 16, VEHICLE::GET_NUM_VEHICLE_MODS(veh, 16) - 1, true); //armor
            //printf("Armor Mods:%d\n", VEHICLE::GET_NUM_VEHICLE_MODS(veh, 16));
            //VEHICLE::SET_VEHICLE_MOD(veh, 23, 19, true); //front wheels
            //VEHICLE::SET_VEHICLE_MOD_COLOR_1(veh, 3, 0, 0);
            //VEHICLE::SET_VEHICLE_MOD_COLOR_2(veh, 3, 0);
            VEHICLE::SET_VEHICLE_WHEEL_TYPE(veh, 6); //rims
            VEHICLE::SET_VEHICLE_WINDOW_TINT(veh, 1);
            set_status_text("Car Fully Upgraded");
        }
    }

}
bool onconfirm_color_menu_selection(MenuItem<std::string> choice)
{
	int whichpaint = std::stoi(choice.value);
	BOOL bPlayerExists = ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID());
	Player player = PLAYER::PLAYER_ID();
	Ped playerPed = PLAYER::PLAYER_PED_ID();

	if (bPlayerExists)
	{
		if (PED::IS_PED_IN_ANY_VEHICLE(playerPed, 0))
		{
			Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
			VEHICLE::SET_VEHICLE_MOD_KIT(veh, 0);

			if (::whichpart == 0) //Apply primary Color
			{
				VEHICLE::SET_VEHICLE_MOD_COLOR_1(veh, ::whichtype, whichpaint, -1);
			}
			else if (::whichpart == 1) //apply secondary Color
			{
				VEHICLE::SET_VEHICLE_MOD_COLOR_2(veh, ::whichtype, whichpaint);
			}
			else if (::whichpart == 2) //Apply pearl Topcoat
			{
				int paint1, paint2, paint3;
				VEHICLE::GET_VEHICLE_MOD_COLOR_1(veh, &paint1, &paint2, &paint3);
				VEHICLE::SET_VEHICLE_MOD_COLOR_1(veh, 2, paint2, whichpaint - 1); //change paint type to pearl and apply topcoat
			}
			else if (::whichpart == 3) //Apply wheel color
			{
				int paint1, paint2;//pearl topcoat, wheel color
				VEHICLE::GET_VEHICLE_EXTRA_COLOURS(veh, &paint1, &paint2);
				VEHICLE::SET_VEHICLE_EXTRA_COLOURS(veh, paint1, whichpaint); //apply wheel color without changing pearl topcoat
			}

		}
		else
		{
			set_status_text("Player isn't in a vehicle");
		}
	}
	return true;
}
void WantedSymbolItem<T>::handleRightPress()
{
	turn_off_never_wanted();
	BOOL bPlayerExists = ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID());
	Player player = PLAYER::PLAYER_ID();
	int currentLevel = PLAYER::GET_PLAYER_WANTED_LEVEL(player);
	if (bPlayerExists && currentLevel < 5)
	{
		PLAYER::SET_PLAYER_WANTED_LEVEL(player, ++currentLevel, 0);
		PLAYER::SET_PLAYER_WANTED_LEVEL_NOW(player, 0);
		setFrozenWantedLvl(currentLevel);
		std::stringstream ss;
		ss << "Wanted Level: " << currentLevel << " Star";
		if (currentLevel > 1)
		{
			ss << "s"; //plural
		}
		set_status_text(ss.str());
	}
}
void do_spawn_prop(PropInfo prop, bool silent)
{
	Hash propHash = GAMEPLAY::GET_HASH_KEY((char *)prop.model);

	if (!STREAMING::IS_MODEL_IN_CDIMAGE(propHash) || !STREAMING::IS_MODEL_VALID(propHash))
	{
		if (!silent)
		{
			std::ostringstream ss;
			ss << "Model " << prop.model << " is not valid";
			set_status_text(ss.str());
		}

		std::ostringstream ss2;
		ss2 << "INVALID-MODEL: " << prop.model;
		write_text_to_log_file(ss2.str());
		return;
	}

	do_spawn_model(propHash, prop.model, prop.label, silent);
}
bool process_skinchanger_detail_menu()
{
	if (!skinchanger_used)
	{
		set_status_text("Please apply a skin first");
		return false;
	}

	DWORD waitTime = 150;
	int foundTextures = 0;
	std::vector<std::string> menuCaptions;
	std::vector<int> menuValues;

	DWORD model = GAMEPLAY::GET_HASH_KEY((char *)chosenSkinName.c_str());
	if (STREAMING::IS_MODEL_IN_CDIMAGE(model) && STREAMING::IS_MODEL_VALID(model))
	{
		STREAMING::REQUEST_MODEL(model);
		while (!STREAMING::HAS_MODEL_LOADED(model))	WAIT(0);

		for (int i = 0; i < 15; i++)
		{
			for (int j = 0; j < 1000; j++)
			{
				int drawable = rand() % 10;
				int texture = rand() % 10;
				if (PED::IS_PED_COMPONENT_VARIATION_VALID(PLAYER::PLAYER_PED_ID(), i, drawable, texture))
				{
					std::string itemText = getSkinDetailAttribDescription(i);
					menuCaptions.push_back(itemText);
					menuValues.push_back(i);
					break;
				}
			}
		}

		STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(model);
	}

	return drawGenericMenu<int>(menuCaptions, menuValues, skinDetailMenuIndex, "Skin Details", onconfirm_skinchanger_detail_menu, onhighlight_skinchanger_detail_menu, NULL);
}
void onhighlight_livery(MenuItem<int> choice)
{
	// common variables
	BOOL bPlayerExists = ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID());

	if (!bPlayerExists)
	{
		return;
	}

	Player player = PLAYER::PLAYER_ID();
	Ped playerPed = PLAYER::PLAYER_PED_ID();

	if (!PED::IS_PED_IN_ANY_VEHICLE(playerPed, 0))
	{
		set_status_text("Player isn't in a vehicle");
		return;
	}

	Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
	VEHICLE::SET_VEHICLE_LIVERY(veh, choice.value);
}