comparison mm7_5.cpp @ 273:e5afd6848268

GetSkillColor
author Ritor1
date Mon, 18 Feb 2013 16:37:04 +0600
parents b34b53ee874d
children a9f58ca01454
comparison
equal deleted inserted replaced
270:d5c41d5e01e0 273:e5afd6848268
16762 Dst.DrawTitleText(pFontCreate, 0, 0, 0, pTmpBuf, 3u); 16762 Dst.DrawTitleText(pFontCreate, 0, 0, 0, pTmpBuf, 3u);
16763 return Dst.DrawText(pFontSmallnum, 1, LOBYTE(pFontLucida->uFontHeight), 0, v2, 0, 0, 0); 16763 return Dst.DrawText(pFontSmallnum, 1, LOBYTE(pFontLucida->uFontHeight), 0, v2, 0, 0, 0);
16764 } 16764 }
16765 16765
16766 //----- (00417AD4) -------------------------------------------------------- 16766 //----- (00417AD4) --------------------------------------------------------
16767 unsigned int __fastcall sub_417AD4(unsigned int uPlayerClass, enum PLAYER_SKILL_TYPE uPlayerSkillType, signed int a3) 16767 unsigned int __fastcall GetSkillColor(unsigned int uPlayerClass, enum PLAYER_SKILL_TYPE uPlayerSkillType, signed int skill_level)
16768 { 16768 {
16769 //enum PLAYER_SKILL_TYPE v3; // ebx@1
16770 //signed int v4; // edi@1
16771 unsigned int v5; // ecx@1
16772 int v6; // edx@1 16769 int v6; // edx@1
16773 int v7; // eax@7 16770 int v7; // eax@7
16774 int v8; // eax@10 16771 int v8; // eax@10
16775 unsigned __int8 v9; // sf@10 16772 unsigned __int8 v9; // sf@10
16776 unsigned __int8 v10; // of@10 16773 unsigned __int8 v10; // of@10
16777 //int v11; // eax@11
16778 int v12; // eax@14 16774 int v12; // eax@14
16779 unsigned int yellow; // [sp+Ch] [bp-Ch]@1 16775 unsigned int yellow; // [sp+Ch] [bp-Ch]@1
16780 unsigned int red; // [sp+10h] [bp-8h]@1 16776 unsigned int red; // [sp+10h] [bp-8h]@1
16781 unsigned int white; // [sp+14h] [bp-4h]@1 16777 unsigned int white; // [sp+14h] [bp-4h]@1
16782 16778
16783 //v3 = uPlayerSkillType;
16784 //v4 = uPlayerClass;
16785 white = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0xFFu); 16779 white = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0xFFu);
16786 red = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0, 0); 16780 red = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0, 0);
16787 yellow = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0); 16781 yellow = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0);
16788 v5 = 0;
16789 //v6 = uPlayerClass % 4;
16790 if ( !(uPlayerClass % 4) ) 16782 if ( !(uPlayerClass % 4) )
16791 { 16783 {
16792 //v11 = 37 * uPlayerClass + uPlayerSkillType; 16784 if ( byte_4ED970_skill_learn_ability_by_class_table[uPlayerClass][uPlayerSkillType] >= skill_level )
16793 if ( byte_4ED970_skill_learn_ability_by_class_table[uPlayerClass][uPlayerSkillType] >= a3 )
16794 return white; 16785 return white;
16795 if ( byte_4ED970_skill_learn_ability_by_class_table[uPlayerClass + 1][uPlayerSkillType] < a3 16786 if ( byte_4ED970_skill_learn_ability_by_class_table[uPlayerClass + 1][uPlayerSkillType] < skill_level
16796 && byte_4ED970_skill_learn_ability_by_class_table[uPlayerClass + 2][uPlayerSkillType] < a3 ) 16787 && byte_4ED970_skill_learn_ability_by_class_table[uPlayerClass + 2][uPlayerSkillType] < skill_level )
16797 { 16788 {
16798 v12 = byte_4ED970_skill_learn_ability_by_class_table[uPlayerClass + 3][uPlayerSkillType]; 16789 v12 = byte_4ED970_skill_learn_ability_by_class_table[uPlayerClass + 3][uPlayerSkillType];
16799 //v10 = __OFSUB__(v12, a3); 16790 if ( v12 < skill_level )
16800 //v9 = v12 - a3 < 0;
16801 //LABEL_15:
16802 //v5 = red;
16803 if ( v12 < a3 )
16804 return red; 16791 return red;
16805 } 16792 }
16806 return yellow; 16793 return yellow;
16807 } 16794 }
16808 if ( v6 == 1 ) 16795 if ( (uPlayerClass % 4) == 1 )
16809 { 16796 {
16810 //v7 = 37 * uPlayerClass + uPlayerSkillType; 16797 if ( byte_4ED970_skill_learn_ability_by_class_table[uPlayerClass][uPlayerSkillType] >= skill_level )
16811 if ( byte_4ED970_skill_learn_ability_by_class_table[uPlayerClass][uPlayerSkillType] >= a3 )
16812 return white; 16798 return white;
16813 if ( byte_4ED970_skill_learn_ability_by_class_table[uPlayerClass + 1][uPlayerSkillType] < a3 ) 16799 if ( byte_4ED970_skill_learn_ability_by_class_table[uPlayerClass + 1][uPlayerSkillType] < skill_level )
16814 { 16800 {
16815 v8 = byte_4ED970_skill_learn_ability_by_class_table[uPlayerClass + 2][uPlayerSkillType]; 16801 v8 = byte_4ED970_skill_learn_ability_by_class_table[uPlayerClass + 2][uPlayerSkillType];
16816 //v10 = __OFSUB__(v8, a3); 16802 if ( v8 < skill_level)
16817 //v9 = v8 - a3 < 0; 16803 return red;
16818 if ( v8 < a3)
16819 return red;
16820 } 16804 }
16821 return yellow; 16805 return yellow;
16822 } 16806 }
16823 if ( v6 == 2 || v6 == 3 ) 16807 if ( (uPlayerClass % 4) == 2 || (uPlayerClass % 4) == 3 )
16824 { 16808 {
16825 if ( byte_4ED970_skill_learn_ability_by_class_table[uPlayerClass][uPlayerSkillType] < a3 ) 16809 if ( byte_4ED970_skill_learn_ability_by_class_table[uPlayerClass][uPlayerSkillType] < skill_level )
16826 return red; 16810 return red;
16827 } 16811 }
16828 return white; 16812 return white;
16829 } 16813 }
16830 16814
16887 a2[0] = 0; 16871 a2[0] = 0;
16888 Source[0] = 0; 16872 Source[0] = 0;
16889 if ( (v8 & 0x3F) == (v7 & 0x3F) ) 16873 if ( (v8 & 0x3F) == (v7 & 0x3F) )
16890 { 16874 {
16891 strcpy(a2, "%s\n\n"); 16875 strcpy(a2, "%s\n\n");
16892 v24 = sub_417AD4(pPlayer->classType, uPlayerSkillType, 1); 16876 v24 = GetSkillColor(pPlayer->classType, uPlayerSkillType, 1);
16893 sprintf(Source, format_4E2DC8, v24); 16877 sprintf(Source, format_4E2DC8, v24);
16894 strcat(a2, Source); 16878 strcat(a2, Source);
16895 strcat(a2, "%s\t%03d:\t%03d%s\t000\n"); 16879 strcat(a2, "%s\t%03d:\t%03d%s\t000\n");
16896 v25 = sub_417AD4(pPlayer->classType, uPlayerSkillType, 2); 16880 v25 = GetSkillColor(pPlayer->classType, uPlayerSkillType, 2);
16897 sprintf(Source, format_4E2DC8, v25); 16881 sprintf(Source, format_4E2DC8, v25);
16898 strcat(a2, Source); 16882 strcat(a2, Source);
16899 strcat(a2, "%s\t%03d:\t%03d%s\t000\n"); 16883 strcat(a2, "%s\t%03d:\t%03d%s\t000\n");
16900 v26 = sub_417AD4(pPlayer->classType, uPlayerSkillType, 3); 16884 v26 = GetSkillColor(pPlayer->classType, uPlayerSkillType, 3);
16901 sprintf(Source, format_4E2DC8, v26); 16885 sprintf(Source, format_4E2DC8, v26);
16902 strcat(a2, Source); 16886 strcat(a2, Source);
16903 strcat(a2, "%s\t%03d:\t%03d%s\t000\n"); 16887 strcat(a2, "%s\t%03d:\t%03d%s\t000\n");
16904 v27 = pPlayer->classType; 16888 v27 = pPlayer->classType;
16905 v28 = uPlayerSkillType; 16889 v28 = uPlayerSkillType;
16906 v29 = sub_417AD4(v27, uPlayerSkillType, 4); 16890 v29 = GetSkillColor(v27, uPlayerSkillType, 4);
16907 sprintf(Source, format_4E2DC8, v29); 16891 sprintf(Source, format_4E2DC8, v29);
16908 strcat(a2, Source); 16892 strcat(a2, Source);
16909 strcat(a2, "%s\t%03d:\t%03d%s\t000\n"); 16893 strcat(a2, "%s\t%03d:\t%03d%s\t000\n");
16910 16894
16911 v23 = static_sub_417BB5_out_string; 16895 v23 = static_sub_417BB5_out_string;
16916 (char *)v35 + 3, v35 + 5, pGrandSkillDesc[v28]); 16900 (char *)v35 + 3, v35 + 5, pGrandSkillDesc[v28]);
16917 } 16901 }
16918 else 16902 else
16919 { 16903 {
16920 strcpy(a2, "%s\n\n"); 16904 strcpy(a2, "%s\n\n");
16921 v9 = sub_417AD4(pPlayer->classType, uPlayerSkillType, 1); 16905 v9 = GetSkillColor(pPlayer->classType, uPlayerSkillType, 1);
16922 sprintf(Source, format_4E2DC8, v9); 16906 sprintf(Source, format_4E2DC8, v9);
16923 strcat(a2, Source); 16907 strcat(a2, Source);
16924 strcat(a2, "%s\t%03d:\t%03d%s\t000\n"); 16908 strcat(a2, "%s\t%03d:\t%03d%s\t000\n");
16925 v10 = sub_417AD4(pPlayer->classType, uPlayerSkillType, 2); 16909 v10 = GetSkillColor(pPlayer->classType, uPlayerSkillType, 2);
16926 sprintf(Source, format_4E2DC8, v10); 16910 sprintf(Source, format_4E2DC8, v10);
16927 strcat(a2, Source); 16911 strcat(a2, Source);
16928 strcat(a2, "%s\t%03d:\t%03d%s\t000\n"); 16912 strcat(a2, "%s\t%03d:\t%03d%s\t000\n");
16929 v11 = sub_417AD4(pPlayer->classType, uPlayerSkillType, 3); 16913 v11 = GetSkillColor(pPlayer->classType, uPlayerSkillType, 3);
16930 sprintf(Source, format_4E2DC8, v11); 16914 sprintf(Source, format_4E2DC8, v11);
16931 strcat(a2, Source); 16915 strcat(a2, Source);
16932 strcat(a2, "%s\t%03d:\t%03d%s\t000\n"); 16916 strcat(a2, "%s\t%03d:\t%03d%s\t000\n");
16933 v12 = uPlayerSkillType; 16917 v12 = uPlayerSkillType;
16934 v13 = sub_417AD4(pPlayer->classType, uPlayerSkillType, 4); 16918 v13 = GetSkillColor(pPlayer->classType, uPlayerSkillType, 4);
16935 sprintf(Source, format_4E2DC8, v13); 16919 sprintf(Source, format_4E2DC8, v13);
16936 strcat(a2, Source); 16920 strcat(a2, Source);
16937 strcat(a2, "%s\t%03d:\t%03d%s\t000\n\n"); 16921 strcat(a2, "%s\t%03d:\t%03d%s\t000\n\n");
16938 v14 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0xFFu); 16922 v14 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0xFFu);
16939 sprintf(Source, format_4E2DC8, v14); 16923 sprintf(Source, format_4E2DC8, v14);