void TrafficConfirmedCallback(int exit_code, void *context){ traffic_info_context *traffic_info = (traffic_info_context *)context; int iTrafficInfoId = traffic_info->iTrafficInfoId; int iUserContribution = traffic_info->iUserContribution; if (exit_code == dec_yes){ Realtime_TrafficAlertFeedback(iTrafficInfoId, 100); editor_points_add_new_points(iUserContribution); editor_points_display_new_points_timed(iUserContribution, 5,confirm_event); } else if (exit_code == dec_no){ Realtime_TrafficAlertFeedback(iTrafficInfoId, 0); editor_points_add_new_points(iUserContribution); editor_points_display_new_points_timed(iUserContribution, 5,confirm_event); RTTrafficInfo_Remove(iTrafficInfoId); } free( context ); }
int RealtimeBonus_CollectedPointsConfirmed(int iID, int iType, int iPoints, BOOL bHasGift, BOOL bIsBigPrize, const char *gift){ if (iType == BONUS_TYPE_POINTS){ if (iPoints != 0){ roadmap_log( ROADMAP_DEBUG, "RealtimeBonus_CollectedPointsRes() - (id =%d, points = %d)", iID, iPoints); editor_points_add_new_points (iPoints); editor_points_display_new_points_timed (iPoints, 6, bonus_points); } else{ roadmap_log( ROADMAP_ERROR, "RealtimeBonus_CollectedPointsRes() - Failed (id =%d, points = %d)", iID, iPoints); } } else if (iType == BONUS_TYPE_TREASURE){ if (!bHasGift){ // The chest box was empty roadmap_messagebox_timeout("", roadmap_lang_get ("Bummer, this treasure chest was emptied. Keep searching for other chests, some have valuable prizes in them."), 10); } else{ // We got a gift! char msg[250]; if (iPoints != 0){ snprintf(msg, sizeof(msg),roadmap_lang_get ("Huray! You just won %s and an extra %d points. Check your email for info."), roadmap_lang_get(gift), iPoints); roadmap_messagebox("",msg); editor_points_add_new_points (iPoints); editor_points_display_new_points_timed (iPoints, 6, bonus_points); } else{ if (bIsBigPrize){ snprintf(msg, sizeof(msg),roadmap_lang_get ("Huray!!! You won the big prize: %s . Check your email for info."), roadmap_lang_get(gift)); roadmap_messagebox("",msg); } else{ snprintf(msg, sizeof(msg),roadmap_lang_get ("Huray! You just won %s. Check your email for info."), roadmap_lang_get(gift)); roadmap_messagebox("",msg); } } } } else{ roadmap_log( ROADMAP_ERROR, "RealtimeBonus_CollectedPointsRes() - Unknown type = %d (ID=%d)", iType,iID); } return TRUE; }
int RealtimeBonus_OpenMessageTicker(int iPoints, const char *text, const char *title, const char *icon){ roadmap_log( ROADMAP_DEBUG, "RealtimeBonus_OpenMessageTicker() - (points = %d, title=%s, text=%s, icon=%s)", iPoints,title, text, icon); if (iPoints > 0){ editor_points_add_new_points (iPoints); } roadmap_message_ticker_show(title, text, icon, -1); 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() || !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 void OnUserContribution(int iUserContribution, int iTrafficInfoId){ traffic_info_context *context; RoadMapGpsPosition pos; static BOOL ask_once = FALSE; roadmap_navigate_get_current(&pos, NULL, NULL); if (pos.speed > 20) return; if (ask_once) return; editor_points_add_new_points(iUserContribution); editor_points_display_new_points_timed(iUserContribution, 6, user_contribution_event); context = ( traffic_info_context* ) malloc( sizeof( traffic_info_context ) ); context->iTrafficInfoId = iTrafficInfoId; context->iUserContribution = iUserContribution; ssd_confirm_dialog_timeout("Traffic detected","Are you experiencing traffic?",TRUE, TrafficConfirmedCallback, context ,10); ask_once = TRUE; }
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; }
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; }