Mercurial > mm7
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); |