BOOL RealtimeBonus_Add (RTBonus *pbonus) { int index; int i; if (!roadmap_map_settings_road_goodies() && !pbonus->bIsCustomeBonus) return TRUE; // Full? if (MAX_ADD_ONS == gBonusTable.iCount){ roadmap_log( ROADMAP_ERROR, "RealtimeBonus_Add() - Failed (Table is full)"); return FALSE; } if ((pbonus->bIsCustomeBonus) && (g_CustomIndex != -1)) return TRUE; if ((pbonus->bIsCustomeBonus) && (!custom_bonus_feature_enabled() || !roadmap_map_settings_road_goodies() )){ Realtime_CollectCustomBonus(pbonus->iID, FALSE, FALSE); editor_points_add_new_points (pbonus->iNumPoints); return TRUE; } if (RealtimeBonus_Exists (pbonus->iID)) RealtimeBonus_Delete(pbonus->iID); for (i = 0; i < MAX_ADD_ONS; i++) { if (gBonusTable.bonus[i] == NULL) { index = i; break; } } gBonusTable.bonus[index] = calloc (1, sizeof(RTBonus)); RealtimeBonus_Record_Init (gBonusTable.bonus[index]); gBonusTable.bonus[index]->iID = pbonus->iID; gBonusTable.bonus[index]->iTemplateID = pbonus->iTemplateID; // Get Template params if (pbonus->iTemplateID != -1){ RTBonusTemplate *template = RealtimeBonus_BonusTemplate_Get(pbonus->iTemplateID);
static int onBonusAdd (RTBonus *pApdon) { if (pApdon->bIsCustomeBonus){ roadmap_main_set_periodic(1000, SpeedCheck_Timer); } else{ if (roadmap_map_settings_road_goodies()) AddBonusToMap(pApdon, FALSE); } return TRUE; }
void RealTimeBonus_SegmentChangedCB (PluginLine *current, int direction){ int line_length; RoadMapPosition pos; line_length = roadmap_line_length(current->line_id); if (line_length < 75) return; roadmap_square_set_current(current->square); if (direction == ROUTE_DIRECTION_WITH_LINE){ roadmap_street_extend_line_ends(current, NULL, &pos, FLAG_EXTEND_TO, NULL, NULL); } else{ roadmap_street_extend_line_ends(current, &pos, NULL, FLAG_EXTEND_FROM, NULL, NULL); } if (g_CustomIndex == -1) return; if (gBonusTable.bonus[g_CustomIndex] == NULL) return; printf("CustomBonusCB %s",gBonusTable.bonus[g_CustomIndex]->pIconName); gBonusTable.bonus[g_CustomIndex]->position.latitude = pos.latitude; gBonusTable.bonus[g_CustomIndex]->position.longitude = pos.longitude; //Adding the custom bonus if (roadmap_map_settings_road_goodies()){ static RoadMapSoundList list; if (!list) { list = roadmap_sound_list_create (SOUND_LIST_NO_FREE); roadmap_sound_list_add (list, "ping2"); roadmap_res_get (RES_SOUND, 0, "ping2"); } roadmap_sound_play_list (list); AddBonusToMap(gBonusTable.bonus[g_CustomIndex], TRUE); } g_CustomIndex = -1; roadmap_navigate_unregister_segment_changed(RealTimeBonus_SegmentChangedCB); }
int RealtimeBonus_HandleEvent (int iID) { RTBonus *pbonus = RealtimeBonus_Get (iID); if (!pbonus) return TRUE; if (pbonus->collected) return TRUE; pbonus->collected = TRUE; if (roadmap_map_settings_road_goodies()){ if ((pbonus->iType == BONUS_TYPE_TREASURE) && Realtime_is_random_user()){ roadmap_messagebox_timeout("", roadmap_lang_get ("There may be presents in this treasure chest but you need to be a registered user in order to get them. Register in 'Settings > Profile'"), 10); return TRUE; } roadmap_log( ROADMAP_DEBUG, "Yeahhh Collecting a gift id=%d)", iID); Play_Animation_Sound (); RealtimeBonus_Animate_Pacman (); } if (pbonus->bIsCustomeBonus){ Realtime_CollectCustomBonus(iID, roadmap_twitter_is_munching_enabled() && roadmap_twitter_logged_in(), roadmap_facebook_is_munching_enabled() && roadmap_facebook_logged_in()); editor_points_add_new_points (pbonus->iNumPoints); } else{ Realtime_CollectBonus(iID, pbonus->iToken, roadmap_twitter_is_munching_enabled() && roadmap_twitter_logged_in(), roadmap_facebook_is_munching_enabled() && roadmap_facebook_logged_in()); } onBonusDelete(pbonus); return TRUE; }
static int onBonusDelete (RTBonus *pApdon) { RoadMapDynamicString GUI_ID = roadmap_string_new (pApdon->sGUIID); if ((!pApdon->bIsCustomeBonus || pApdon->displayed) && roadmap_map_settings_road_goodies()) roadmap_object_remove (GUI_ID); return TRUE; }
BOOL RealtimeBonus_Add (RTBonus *pbonus) { int index; int i; if (!roadmap_map_settings_road_goodies() && !pbonus->bIsCustomeBonus) return TRUE; // Full? if (MAX_ADD_ONS == gBonusTable.iCount){ roadmap_log( ROADMAP_ERROR, "RealtimeBonus_Add() - Failed (Table is full)"); return FALSE; } if ((pbonus->bIsCustomeBonus) && (g_CustomIndex != -1)) return TRUE; if ((pbonus->bIsCustomeBonus) && !custom_bonus_feature_enabled()){ Realtime_CollectCustomBonus(pbonus->iID, FALSE, FALSE); editor_points_add_new_points (pbonus->iNumPoints); return TRUE; } if (RealtimeBonus_Exists (pbonus->iID)) RealtimeBonus_Delete(pbonus->iID); for (i = 0; i < MAX_ADD_ONS; i++) { if (gBonusTable.bonus[i] == NULL) { index = i; break; } } gBonusTable.bonus[index] = calloc (1, sizeof(RTBonus)); RealtimeBonus_Record_Init (gBonusTable.bonus[index]); gBonusTable.bonus[index]->iID = pbonus->iID; gBonusTable.bonus[index]->iType = pbonus->iType; gBonusTable.bonus[index]->iNumPoints = pbonus->iNumPoints; gBonusTable.bonus[index]->iToken = pbonus->iToken; gBonusTable.bonus[index]->iRadius = pbonus->iRadius; gBonusTable.bonus[index]->position.latitude = pbonus->position.latitude; gBonusTable.bonus[index]->position.longitude = pbonus->position.longitude; gBonusTable.bonus[index]->pIconName = strdup (pbonus->pIconName); if (pbonus->pBonusText) gBonusTable.bonus[index]->pBonusText = strdup (pbonus->pBonusText); if (pbonus->pCollectText) gBonusTable.bonus[index]->pCollectText = strdup (pbonus->pCollectText); if (pbonus->pCollectTitle) gBonusTable.bonus[index]->pCollectTitle = strdup (pbonus->pCollectTitle); if (pbonus->pCollectIcon) gBonusTable.bonus[index]->pCollectIcon = strdup (pbonus->pCollectIcon); gBonusTable.bonus[index]->bIsCustomeBonus = pbonus->bIsCustomeBonus; gBonusTable.bonus[index]->collected = FALSE; RealtimeBonus_CreateGUIID (gBonusTable.bonus[index]); gBonusTable.iCount++; if (gBonusTable.bonus[index]->bIsCustomeBonus){ if (gBonusTable.bonus[index]->iNumPoints != 0) gBonusTable.bonus[index]->iType = BONUS_TYPE_POINTS; gBonusTable.bonus[index]->iRadius = get_custom_bonus_radius(); g_CustomIndex = index; } if (roadmap_res_get(RES_BITMAP,RES_SKIN, gBonusTable.bonus[index]->pIconName) == NULL){ if (pbonus->bIsCustomeBonus) printf("download custom %s",gBonusTable.bonus[index]->pIconName); roadmap_res_download(RES_DOWNLOAD_IMAGE, gBonusTable.bonus[index]->pIconName,NULL, "",FALSE,0, on_resource_downloaded, NULL ); } else { if (pbonus->bIsCustomeBonus) printf("add custom %s",gBonusTable.bonus[index]->pIconName); onBonusAdd (gBonusTable.bonus[index]); } return TRUE; }