.text:004B1D90 BirthSignStat_Alignment proc near ; CODE XREF: CreateOrLoadPlayer+661p .text:004B1D90 movsx eax, dwBirthDay ; Day of year of PC birth .text:004B1D97 push eax ; DayOfYear .text:004B1D98 call GetMonth ; Call Procedure .text:004B1D9D add esp, 4 ; Add .text:004B1DA0 cmp eax, 11 ; switch 12 cases .text:004B1DA3 ja locret_4B1EF6 ; default .text:004B1DA9 jmp ds:off_4B1EF8[eax*4] ; switch jump .text:004B1DB0 .text:004B1DB0 loc_4B1DB0: ; DATA XREF: .text:004B1EF8o .text:004B1DB0 push 3 ; case 0x1 .text:004B1DB2 push sLearning ; Book .text:004B1DB4 call IncStat ; Modify sLearning .text:004B1DB9 mov eax, dwPlayerAlignment .text:004B1DBE add esp, 8 ; Just ignore All of these add esp, # things. .text:004B1DC1 add eax, 500 ; Add .text:004B1DC6 mov dwPlayerAlignment, eax .text:004B1DCB retn ; Return Near from Procedure .text:004B1DCC ; --------------------------------------------------------------------------- .text:004B1DCC .text:004B1DCC loc_4B1DCC: ; CODE XREF: BirthSignStat_Alignment+19j .text:004B1DCC ; DATA XREF: .text:004B1EF8o .text:004B1DCC mov edx, dwPlayerAlignment ; case 0x2 .text:004B1DD2 push 2 ; Wand .text:004B1DD4 add edx, 500 ; Add .text:004B1DDA push sCharisma ; StatNr .text:004B1DDC mov dwPlayerAlignment, edx .text:004B1DE2 call IncStat ; Modify sCharisma .text:004B1DE7 add esp, 8 ; Add .text:004B1DEA call GetPlayerAlignmentNr ; Call Procedure .text:004B1DEF cmp eax, 1 ; Compare Two Operands .text:004B1DF2 jnz locret_4B1EF6 ; default .text:004B1DF8 call GetPlayerPP ; Call Procedure .text:004B1DFD test eax, eax ; Logical Compare .text:004B1DFF jz locret_4B1EF6 ; default .text:004B1E05 mov eax, dwPlayerMaxPPBase .text:004B1E0A push 2 ; StatDelta .text:004B1E0C add eax, 10 ; Add .text:004B1E0F push sMana ; StatNr .text:004B1E11 mov dwPlayerMaxPPBase, eax .text:004B1E16 mov dwPlayerPP, eax .text:004B1E1B call IncStat ; Modify sMana .text:004B1E20 add esp, 8 ; Add .text:004B1E23 retn ; Return Near from Procedure .text:004B1E24 ; --------------------------------------------------------------------------- .text:004B1E24 .text:004B1E24 loc_4B1E24: ; CODE XREF: BirthSignStat_Alignment+19j .text:004B1E24 ; DATA XREF: .text:004B1EF8o .text:004B1E24 push 2 ; case 0x3 .text:004B1E26 push sAppearance ; Unicorn .text:004B1E28 call IncStat ; Modify sAppearance .text:004B1E2D add esp, 8 ; Add .text:004B1E30 retn ; Return Near from Procedure .text:004B1E31 ; --------------------------------------------------------------------------- .text:004B1E31 .text:004B1E31 loc_4B1E31: ; CODE XREF: BirthSignStat_Alignment+19j .text:004B1E31 ; DATA XREF: .text:004B1EF8o .text:004B1E31 push 1 ; case 0x4 .text:004B1E33 push sCharisma ; Salamander .text:004B1E35 call IncStat ; Modify sCharisma .text:004B1E3A push 3 ; StatDelta .text:004B1E3C push sMana ; StatNr .text:004B1E3E call IncStat ; Modify sMana .text:004B1E43 add esp, 10h ; Add .text:004B1E46 call GetPlayerPP ; Call Procedure .text:004B1E4B test eax, eax ; Logical Compare .text:004B1E4D jz locret_4B1EF6 ; default .text:004B1E53 mov ecx, dwPlayerMaxPPBase .text:004B1E59 mov eax, 66666667h .text:004B1E5E imul ecx ; Signed Multiply .text:004B1E60 sar edx, 1 ; Shift Arithmetic Right .text:004B1E62 mov eax, edx .text:004B1E64 shr eax, 1Fh ; Shift Logical Right .text:004B1E67 add edx, eax ; Add .text:004B1E69 add ecx, edx ; Add .text:004B1E6B mov dwPlayerMaxPPBase, ecx .text:004B1E71 mov dwPlayerPP, ecx .text:004B1E77 retn ; Return Near from Procedure .text:004B1E78 ; --------------------------------------------------------------------------- .text:004B1E78 .text:004B1E78 loc_4B1E78: ; CODE XREF: BirthSignStat_Alignment+19j .text:004B1E78 ; DATA XREF: .text:004B1EF8o .text:004B1E78 push -3 ; case 0x5 .text:004B1E7A push sWillpower ; Dragon .text:004B1E7C call IncStat ; Modify sWillpower .text:004B1E81 push 2 ; StatDelta .text:004B1E83 push sStrength ; StatNr .text:004B1E85 call IncStat ; Modify sStrength .text:004B1E8A push 1 ; StatDelta .text:004B1E8C push sToughness ; StatNr .text:004B1E8E call IncStat ; Modify sToughness .text:004B1E93 add esp, 18h ; Add .text:004B1E96 retn ; Return Near from Procedure .text:004B1E97 ; --------------------------------------------------------------------------- .text:004B1E97 .text:004B1E97 loc_4B1E97: ; CODE XREF: BirthSignStat_Alignment+19j .text:004B1E97 ; DATA XREF: .text:004B1EF8o .text:004B1E97 push 1 ; case 0x6 .text:004B1E99 push sLearning ; Sword .text:004B1E9B call IncStat ; Modify sLearning .text:004B1EA0 add esp, 8 ; Add .text:004B1EA3 retn ; Return Near from Procedure .text:004B1EA4 ; --------------------------------------------------------------------------- .text:004B1EA4 .text:004B1EA4 loc_4B1EA4: ; CODE XREF: BirthSignStat_Alignment+19j .text:004B1EA4 ; DATA XREF: .text:004B1EF8o .text:004B1EA4 push 2 ; case 0x7 .text:004B1EA6 push sWillpower ; Falcon .text:004B1EA8 call IncStat ; Modify sWillpower .text:004B1EAD push 1 ; StatDelta .text:004B1EAF push sCharisma ; StatNr .text:004B1EB1 call IncStat ; Modify sCharisma .text:004B1EB6 add esp, 10h ; Add .text:004B1EB9 retn ; Return Near from Procedure .text:004B1EBA ; --------------------------------------------------------------------------- .text:004B1EBA .text:004B1EBA loc_4B1EBA: ; CODE XREF: BirthSignStat_Alignment+19j .text:004B1EBA ; DATA XREF: .text:004B1EF8o .text:004B1EBA push 2 ; case 0x8 .text:004B1EBC push sLearning ; Cup .text:004B1EBE call IncStat ; Modify sLearning .text:004B1EC3 add esp, 8 ; Add .text:004B1EC6 retn ; Return Near from Procedure .text:004B1EC7 ; --------------------------------------------------------------------------- .text:004B1EC7 .text:004B1EC7 loc_4B1EC7: ; CODE XREF: BirthSignStat_Alignment+19j .text:004B1EC7 ; DATA XREF: .text:004B1EF8o .text:004B1EC7 push 3 ; case 0xa .text:004B1EC9 push sPerception ; Wolf .text:004B1ECB call IncStat ; Modify sPerception .text:004B1ED0 push 3 ; StatDelta .text:004B1ED2 push sWillpower ; StatNr .text:004B1ED4 call IncStat ; Modify sWillpower .text:004B1ED9 add esp, 10h ; Add .text:004B1EDC retn ; Return Near from Procedure .text:004B1EDD ; --------------------------------------------------------------------------- .text:004B1EDD .text:004B1EDD loc_4B1EDD: ; CODE XREF: BirthSignStat_Alignment+19j .text:004B1EDD ; DATA XREF: .text:004B1EF8o .text:004B1EDD push 5 ; case 0xb .text:004B1EDF push sWillpower ; Tree .text:004B1EE1 call IncStat ; Modify sWillpower .text:004B1EE6 add esp, 8 ; Add .text:004B1EE9 retn ; Return Near from Procedure .text:004B1EEA ; --------------------------------------------------------------------------- .text:004B1EEA .text:004B1EEA loc_4B1EEA: ; CODE XREF: BirthSignStat_Alignment+19j .text:004B1EEA ; DATA XREF: .text:004B1EF8o .text:004B1EEA push 2 ; case 0x0 .text:004B1EEC push sPerception ; Raven .text:004B1EEE call IncStat ; Modify sPerception .text:004B1EF3 add esp, 8 ; Add .text:004B1EF6 .text:004B1EF6 locret_4B1EF6: ; CODE XREF: BirthSignStat_Alignment+13j .text:004B1EF6 ; BirthSignStat_Alignment+19j ... .text:004B1EF6 retn ; default .text:004B1EF6 BirthSignStat_Alignment endp .text:004B1EF6 .text:004B1EF6 ; --------------------------------------------------------------------------- .text:004B1EF7 align 4 .text:004B1EF8 off_4B1EF8 dd offset loc_4B1EEA, offset loc_4B1DB0, offset loc_4B1DCC, offset loc_4B1E24 .text:004B1EF8 ; DATA XREF: BirthSignStat_Alignment+19r .text:004B1EF8 dd offset loc_4B1E31, offset loc_4B1E78, offset loc_4B1E97, offset loc_4B1EA4 ; jump table for switch statement .text:004B1EF8 dd offset loc_4B1EBA, offset locret_4B1EF6, offset loc_4B1EC7, offset loc_4B1EDD .text:004B1F28 db 8 dup(90h) Candle has no stat bonuses. It's too busy having ridiculously awesome healing instead.