# HG changeset patch # User Grumpy7 # Date 1394836387 -3600 # Node ID 53d4e8539ca17195b7eab9fea40b87039d934691 # Parent f5680ba9c96d3098b5970454d4e551ca869fd00a StorylineText::Initialize using tokenizer diff -r f5680ba9c96d -r 53d4e8539ca1 StorylineTextTable.cpp --- a/StorylineTextTable.cpp Fri Mar 14 23:06:24 2014 +0100 +++ b/StorylineTextTable.cpp Fri Mar 14 23:33:07 2014 +0100 @@ -11,15 +11,8 @@ //----- (00453E6D) -------------------------------------------------------- void StorylineText::Initialize() - { - - int i; +{ char* test_string; - unsigned char c; - bool break_loop; - unsigned int temp_str_len; - char* tmp_pos; - int decode_step; if ( pHistoryTXT_Raw ) free(pHistoryTXT_Raw); @@ -33,46 +26,15 @@ StoreLine[0].f_9=0; StoreLine[0].f_A=0; StoreLine[0].f_B=0; + + for (int i=0;i<28;++i) + { + test_string = strtok(NULL, "\r") + 1; + auto tokens = Tokenize(test_string, '\t'); + + StoreLine[i+1].pText = RemoveQuotes(tokens[1]); + StoreLine[i+1].uTime = atoi(tokens[2]); //strange but in text here string not digit + StoreLine[i+1].pPageTitle = RemoveQuotes(tokens[3]); + } - for (i=0;i<29;++i) - { - test_string = strtok(NULL, "\r") + 1; - break_loop = false; - decode_step=0; - do - { - c = *(unsigned char*)test_string; - temp_str_len = 0; - while((c!='\t')&&(c>0)) - { - ++temp_str_len; - c=test_string[temp_str_len]; - } - tmp_pos=test_string+temp_str_len; - if (*tmp_pos == 0) - break_loop = true; - *tmp_pos = 0; - if (temp_str_len) - { - switch (decode_step) - { - case 1: - StoreLine[i+1].pText=RemoveQuotes(test_string); - break; - case 2: - StoreLine[i+1].uTime=atoi(test_string); //strange but in text here string not digit - break; - case 3: - StoreLine[i+1].pPageTitle=RemoveQuotes(test_string); - break; - } - } - else - { - break_loop = true; - } - ++decode_step; - test_string=tmp_pos+1; - } while ((decode_step<4)&&!break_loop); - } - } \ No newline at end of file +} \ No newline at end of file