[1.10] Exp Bar Drawing Func

This forum is for discussions on how to edit what can not be edited through the txt files, needless to say this isn't about battle net hacking.

Moderators: Nefarius, Havvoric

User avatar
Necrolis
Senior Admin
Throne
Posts: 9125
Joined: Sat Mar 25, 2006 1:22 pm
Location: The Land of the Dead
South Africa

Hand-picked

[1.10] Exp Bar Drawing Func

Post by Necrolis » Sat Jun 30, 2007 12:51 pm

I asked thisquestion a long time ago, but didn't get much help :P, but now with more exp(no pun intended :P) under my belt, i tracked this bugger down....

Code: Select all

D2Client 1.10

6FAFFCA0   /$ 81EC E0000000  SUB ESP,0E0
6FAFFCA6   |. 53             PUSH EBX
6FAFFCA7   |. 55             PUSH EBP
6FAFFCA8   |. 56             PUSH ESI
6FAFFCA9   |. 57             PUSH EDI
6FAFFCAA   |. E8 21870200    CALL d2client.6FB283D0
6FAFFCAF   |. 8BF0           MOV ESI,EAX
6FAFFCB1   |. 85F6           TEST ESI,ESI
6FAFFCB3   |. 75 09          JNZ SHORT d2client.6FAFFCBE
6FAFFCB5   |. 83CF FF        OR EDI,FFFFFFFF
6FAFFCB8   |. 897C24 10      MOV DWORD PTR SS:[ESP+10],EDI
6FAFFCBC   |. EB 09          JMP SHORT d2client.6FAFFCC7
6FAFFCBE   |> 8B46 04        MOV EAX,DWORD PTR DS:[ESI+4]
6FAFFCC1   |. 894424 10      MOV DWORD PTR SS:[ESP+10],EAX
6FAFFCC5   |. 8BF8           MOV EDI,EAX
6FAFFCC7   |> 6A 00          PUSH 0
6FAFFCC9   |. 6A 0C          PUSH 0C
6FAFFCCB   |. 56             PUSH ESI
6FAFFCCC   |. E8 B1AD0600    CALL <JMP.&D2Common.#10519>
6FAFFCD1   |. 8BD8           MOV EBX,EAX
6FAFFCD3   |. 6A 00          PUSH 0
6FAFFCD5   |. 6A 0D          PUSH 0D
6FAFFCD7   |. 56             PUSH ESI
6FAFFCD8   |. 895C24 2C      MOV DWORD PTR SS:[ESP+2C],EBX
6FAFFCDC   |. E8 A1AD0600    CALL <JMP.&D2Common.#10519>
6FAFFCE1   |. 8BE8           MOV EBP,EAX
6FAFFCE3   |. 6A 00          PUSH 0
6FAFFCE5   |. 6A 0C          PUSH 0C
6FAFFCE7   |. 56             PUSH ESI
6FAFFCE8   |. E8 35AD0600    CALL <JMP.&D2Common.#10521>
6FAFFCED   |. 50             PUSH EAX
6FAFFCEE   |. 57             PUSH EDI
6FAFFCEF   |. E8 D2B10600    CALL <JMP.&D2Common.#10628>
6FAFFCF4   |. 4B             DEC EBX
6FAFFCF5   |. 8BF0           MOV ESI,EAX
6FAFFCF7   |. 53             PUSH EBX
6FAFFCF8   |. 57             PUSH EDI
6FAFFCF9   |. 897424 24      MOV DWORD PTR SS:[ESP+24],ESI
6FAFFCFD   |. E8 C4B10600    CALL <JMP.&D2Common.#10628>
6FAFFD02   |. 2BF0           SUB ESI,EAX
6FAFFD04   |. 3BE8           CMP EBP,EAX
6FAFFD06   |. 76 06          JBE SHORT d2client.6FAFFD0E
6FAFFD08   |. 8BFD           MOV EDI,EBP
6FAFFD0A   |. 2BF8           SUB EDI,EAX
6FAFFD0C   |. EB 02          JMP SHORT d2client.6FAFFD10
6FAFFD0E   |> 33FF           XOR EDI,EDI
6FAFFD10   |> E8 AB7E0500    CALL d2client.6FB57BC0
6FAFFD15   |. 894424 24      MOV DWORD PTR SS:[ESP+24],EAX
6FAFFD19   |. E8 B27E0500    CALL d2client.6FB57BD0
6FAFFD1E   |. 894424 18      MOV DWORD PTR SS:[ESP+18],EAX
6FAFFD22   |. 8D5C24 28      LEA EBX,DWORD PTR SS:[ESP+28]
6FAFFD26   |. C74424 14 6400>MOV DWORD PTR SS:[ESP+14],64
6FAFFD2E   |> 8BCB           /MOV ECX,EBX
6FAFFD30   |. FF15 A8DAB66F  |CALL DWORD PTR DS:[<&D2Lang.??_FUnicode>;  D2Lang.6FC11200
6FAFFD36   |. 8B4424 14      |MOV EAX,DWORD PTR SS:[ESP+14]
6FAFFD3A   |. 83C3 02        |ADD EBX,2
6FAFFD3D   |. 48             |DEC EAX
6FAFFD3E   |. 894424 14      |MOV DWORD PTR SS:[ESP+14],EAX
6FAFFD42   |.^75 EA          \JNZ SHORT d2client.6FAFFD2E
6FAFFD44   |. A1 EC40B76F    MOV EAX,DWORD PTR DS:[6FB740EC]
6FAFFD49   |. 8B4C24 24      MOV ECX,DWORD PTR SS:[ESP+24]
6FAFFD4D   |. 99             CDQ
6FAFFD4E   |. 2BC2           SUB EAX,EDX
6FAFFD50   |. D1F8           SAR EAX,1
6FAFFD52   |. 8D90 6EFFFFFF  LEA EDX,DWORD PTR DS:[EAX-92]
6FAFFD58   |. 3BCA           CMP ECX,EDX
6FAFFD5A   |. 7C 68          JL SHORT d2client.6FAFFDC4
6FAFFD5C   |. 83C0 E9        ADD EAX,-17
6FAFFD5F   |. 3BC8           CMP ECX,EAX
6FAFFD61   |. 7F 61          JG SHORT d2client.6FAFFDC4
6FAFFD63   |. A1 F040B76F    MOV EAX,DWORD PTR DS:[6FB740F0]
6FAFFD68   |. 8B4C24 18      MOV ECX,DWORD PTR SS:[ESP+18]
6FAFFD6C   |. 8D50 D5        LEA EDX,DWORD PTR DS:[EAX-2B]
6FAFFD6F   |. 3BCA           CMP ECX,EDX
6FAFFD71   |. 7C 51          JL SHORT d2client.6FAFFDC4
6FAFFD73   |. 83C0 DE        ADD EAX,-22
6FAFFD76   |. 3BC8           CMP ECX,EAX
6FAFFD78   |. 7F 4A          JG SHORT d2client.6FAFFDC4
6FAFFD7A   |. 8B4424 1C      MOV EAX,DWORD PTR SS:[ESP+1C]
6FAFFD7E   |. B9 43100000    MOV ECX,1043
6FAFFD83   |. 50             PUSH EAX
6FAFFD84   |. 55             PUSH EBP
6FAFFD85   |. E8 4EC00600    CALL <JMP.&D2Lang.#10004>
6FAFFD8A   |. 8D4C24 30      LEA ECX,DWORD PTR SS:[ESP+30]
6FAFFD8E   |. 50             PUSH EAX
6FAFFD8F   |. 51             PUSH ECX
6FAFFD90   |. 6A 64          PUSH 64
6FAFFD92   |. FF15 B0DAB66F  CALL DWORD PTR DS:[<&D2Lang.?sprintf@Uni>;  D2Lang.6FC11670
6FAFFD98   |. 8B15 F040B76F  MOV EDX,DWORD PTR DS:[6FB740F0]
6FAFFD9E   |. A1 EC40B76F    MOV EAX,DWORD PTR DS:[6FB740EC]
6FAFFDA3   |. 83C4 14        ADD ESP,14
6FAFFDA6   |. 83C2 CD        ADD EDX,-33
6FAFFDA9   |. 8D4C24 28      LEA ECX,DWORD PTR SS:[ESP+28]
6FAFFDAD   |. 6A 01          PUSH 1
6FAFFDAF   |. 6A 00          PUSH 0                                   ;  mouse over colour
6FAFFDB1   |. 52             PUSH EDX
6FAFFDB2   |. 99             CDQ
6FAFFDB3   |. 2BC2           SUB EAX,EDX
6FAFFDB5   |. 8BD0           MOV EDX,EAX
6FAFFDB7   |. D1FA           SAR EDX,1                                ;  x coord of mouse over
6FAFFDB9   |. 81EA 92000000  SUB EDX,92                               ;  x coord of mouse over
6FAFFDBF   |. E8 2AC20600    CALL <JMP.&D2Win.#10129>
6FAFFDC4   |> 85F6           TEST ESI,ESI
6FAFFDC6   |. 0F84 87000000  JE d2client.6FAFFE53
6FAFFDCC   |. 81FF 02B92602  CMP EDI,226B902
6FAFFDD2   |. 72 06          JB SHORT d2client.6FAFFDDA
6FAFFDD4   |. C1EF 07        SHR EDI,7
6FAFFDD7   |. C1EE 07        SHR ESI,7
6FAFFDDA   |> 8D04FD 0000000>LEA EAX,DWORD PTR DS:[EDI*8]
6FAFFDE1   |. 2BC7           SUB EAX,EDI
6FAFFDE3   |. 8D0C87         LEA ECX,DWORD PTR DS:[EDI+EAX*4]
6FAFFDE6   |. 8D144F         LEA EDX,DWORD PTR DS:[EDI+ECX*2]
6FAFFDE9   |. 8D0457         LEA EAX,DWORD PTR DS:[EDI+EDX*2]
6FAFFDEC   |. 33D2           XOR EDX,EDX
6FAFFDEE   |. F7F6           DIV ESI
6FAFFDF0   |. 8BD8           MOV EBX,EAX
6FAFFDF2   |. 83FB 77        CMP EBX,77
6FAFFDF5   |. 76 02          JBE SHORT d2client.6FAFFDF9
6FAFFDF7   |. 33DB           XOR EBX,EBX
6FAFFDF9   |> 8B4424 10      MOV EAX,DWORD PTR SS:[ESP+10]
6FAFFDFD   |. 50             PUSH EAX
6FAFFDFE   |. E8 C9B00600    CALL <JMP.&D2Common.#10629>
6FAFFE03   |. 394424 20      CMP DWORD PTR SS:[ESP+20],EAX
6FAFFE07   |. 73 4A          JNB SHORT d2client.6FAFFE53
6FAFFE09   |. 85DB           TEST EBX,EBX
6FAFFE0B   |. 76 46          JBE SHORT d2client.6FAFFE53
6FAFFE0D   |. A1 EC40B76F    MOV EAX,DWORD PTR DS:[6FB740EC]
6FAFFE12   |. 8B0D F040B76F  MOV ECX,DWORD PTR DS:[6FB740F0]
6FAFFE18   |. 99             CDQ
6FAFFE19   |. 2BC2           SUB EAX,EDX
6FAFFE1B   |. 8D79 DA        LEA EDI,DWORD PTR DS:[ECX-26]
6FAFFE1E   |. 8BF0           MOV ESI,EAX
6FAFFE20      68 FF000000    PUSH 0FF                                 ;  Unknown, guessing its transtbl for the top "bar", always seems to be 0x0FF
6FAFFE25   |. D1FE           SAR ESI,1
6FAFFE27   |. 81EE 90000000  SUB ESI,90
6FAFFE2D      68 FF000000    PUSH 0FF                                 ;  colour of the top "bar"
6FAFFE32   |. 03DE           ADD EBX,ESI                              ;  seems to draw 2 bars over one another
6FAFFE34      57             PUSH EDI                                 ;  Y(1) co-ord of the top "bar"
6FAFFE35      53             PUSH EBX                                 ;  X(1) co-ord of the top "bar"
6FAFFE36      57             PUSH EDI                                 ;  Y(2) co-ord of the top "bar"
6FAFFE37      56             PUSH ESI                                 ;  X(2) co-ord of the top "bar"
6FAFFE38   |. E8 0DBA0600    CALL <JMP.&D2gfx.#10057>                 ;  call to blizzards line drawing func
6FAFFE3D   |. 8D47 01        LEA EAX,DWORD PTR DS:[EDI+1]             ;  distance between top and bottom components of the "bar"
6FAFFE40      68 FF000000    PUSH 0FF                                 ;  Unknown, guessing its transtbl for the bottom "bar", always seems to be 0x0FF
6FAFFE45      68 FF000000    PUSH 0FF                                 ;  colour of the bottom "bar"
6FAFFE4A   |. 50             PUSH EAX                                 ;  Y(1) co-ord of the bottom "bar"
6FAFFE4B   |. 53             PUSH EBX                                 ;  X(1) co-ord of the bottom "bar"
6FAFFE4C   |. 50             PUSH EAX                                 ;  Y(2) co-ord of the bottom "bar"
6FAFFE4D   |. 56             PUSH ESI                                 ;  X(2) co-ord of the bottom "bar"
6FAFFE4E   |. E8 F7B90600    CALL <JMP.&D2gfx.#10057>
6FAFFE53   |> 5F             POP EDI
6FAFFE54   |. 5E             POP ESI
6FAFFE55   |. 5D             POP EBP
6FAFFE56   |. 5B             POP EBX
6FAFFE57   |. 81C4 E0000000  ADD ESP,0E0
6FAFFE5D   \. C3             RETN
[code]
Colour Chart for D2gfx.#10057
(got tired of going through rubbish further down..., I'll add them later)
01=Black*
02=Black*
03=Black*
04=Very Dark Red
05=Dark Red
06=Very Dark Gold
07=Dark Gold
08=Red(or Very Dark Orange)
09=Dark Orange
0A=Bright Red
0B=Tan
0C=Yellow
0D=Dark Yellow(Like the Gold)
0E=Dark Yellow, a bit lighter(Like the Gold)
0F=Black*
10=Black*
11=Black*
12=Black*
13=Black*
14=Black*
15=Black*
16=Dark Grey
17=Dark Yellow(Like the Gold)
18=Dark Yellow(Like the Gold)
19=Dark Yellow, a bit lighter(Like the Gold)
1A=Dark Yellow, a bit lighter(Like the Gold)
1B=Grey
1C=Grey
1D=Grey(looks a bit lighter)
1E=Grey(looks a bit lighter)
1F=White
20=White
21=Black*
22=Black*
23=Black*
24=Black*
25=Black*
26=Black*
27=Black*
28=Black*
29=Black*
2A=Black*
2B=Black*
2C=Black*
2D=Extremely Dark Red \
2E=Extremely Dark Red | 
2F=Very Dark Red      |
30=Very Dark Red      |
31=Very Dark Red      |
32=Very Dark Red      |
33=Very Dark Red      |
34=Very Dark Red      |
35=Very Dark Red      |
36=Very Dark Red      |Looks Like a Range of Red, Going from Black to (Dark)Red 
37=Very Dark Red      |may actaully start at 21
38=Very Dark Red      |
39=Darker Red	      |
3A=Darker Red	      |
3B=Darker Red	      |
3C=Darker Red	      |
3D=Dark Red	      |
3E=Dark Red	      |
3F=Dark Red	      /
40=Dark Gold           
41=Dark Red	      
42=Dark Gold	      
43=Dark Red
44=Dark Gold
45=Dark Tan
46=Dark Red
47=Dark Tan
48=Dark Red
49=Dark Tan
4A=Dark Red
4B=Dark Purple
4C=Dark Tan
4D=Red(Has a purple/pink tint) 
4E=Dark Tan
4F=Red
50=Red
51=Dark Orange
52=Dark Tan
53=Dark Yellow
54=Redish Dark Yellow
55=Red
56=Red
57=Tan
58=Tan
59=Orange
5A=Yellow
5B=Pinkish Red
5C=Orange
5D=Tan
5E=Tan
5F=Bright Tan
60=Bright Orange
6F=Bright Yellow
70=Light Pinky/Peach
7F=Light Green
80=Green
8F=Navy Blue
90=Navy Blue
9F=Turquoise
A0=Turquoise
AF=Black*
B0=Black*
BF=Dark Grey
C0=Dark Grey
CF=Grey Gold
D0=Grey 
DF=Light Sky Blue
E0=White
EF=Black*
F0=Black*
F1=Black*
F2=Black*
F3=Black*
F4=Black*
F9=Dark Grey
FA=Dark Grey
FB=Dark Grey
FC=Dark Grey
FD=Grey
FE=Grey
FF=White

*All these colours where found in windowed mode so this table reflects colurs darker than what they really are
also colours marked as black might be other dark colours like green or grey.
[/code]
Success! :D btw the text displays use the standard text colours(0-0C)
Last edited by Necrolis on Sat Jun 30, 2007 12:55 pm, edited 1 time in total.
Image
Netiquette, Do you USE it?!?! | Nefarius' Fixed TXT Files | Terms Of Service
Blackened | Day of Death | D2GFEx
"What was yours is mine. Your land, your people, and now your life." - Lim-Dul, the Necromancer
Judgement is Final, Death is Eternal

User avatar
prawn
Junior Member
Paladin
Posts: 111
Joined: Sat Oct 27, 2012 12:21 am
Great Britain

Re: [1.10] Exp Bar Drawing Func

Post by prawn » Thu Apr 16, 2020 11:17 pm

great info for changing experience bar colour

Return to “Code Editing”