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 );
}
示例#2
0
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;
}
示例#3
0
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;
}
示例#4
0
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;
}
示例#6
0
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;
}
示例#7
0
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;
}