Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1812 yogev_ezra 1
; --------------------------------------------------------------------------
2
; FILE: TImpulse.Asm
3
; DATE: November 9, 2008
4
; --------------------------------------------------------------------------
5
 
6
; --------------------------------------------------------------------------
7
; IMPULSE
8
; --------------------------------------------------------------------------
9
virtual at 0
10
loc50:
11
    .pTrekData PVOID ?
12
    .dbl_POWER DOUBLE ?
13
    .__padded__ BYTES 2
14
    .size = $
15
end virtual
16
; --------------------------------------------------------------------------
17
align PROC_ALIGN
18
TImpulse_Main:
19
    mcBeginLocals loc50.size
20
 
21
    mcLoadGameDataPtr esi
22
    mcStoreLocal loc50.pTrekData, esi
23
 
24
    mov     [esi + TREKDATA.IDIDIT], 0
25
 
26
    mov     cl, DEV_IMPULSE_ENGINES
27
    call    TArray_IsDamaged
28
    jc      .L40
29
 
30
    fld     [glb_dbl_30]
31
    fld     [esi + TREKDATA.ENERGY]
32
    mc_CMP_ST0_ST1
33
    jc      .L5
34
    jz      .L5
35
 
36
    call    TMove_GetCourseDistance
37
 
38
    mcLoadLocal esi, loc50.pTrekData
39
    fldz
40
    fld     [esi + TREKDATA.DIREC]
41
    mc_CMP_ST0_ST1
42
    jc      .done
43
 
44
    fld     [esi + TREKDATA.DIST]
45
    fld     [glb_dbl_100]
46
    fmulp
47
    fld     [glb_dbl_20]
48
    faddp
49
    fstp    [esp + loc50.dbl_POWER]
50
 
51
    fld     [esi + TREKDATA.ENERGY]
52
    fld     [esp + loc50.dbl_POWER]
53
    mc_CMP_ST0_ST1
54
    jc      .L20
55
 
56
.L5:
57
    call    TConsole_ScrollUp
58
    call    TConsole_SetCrewMsgAttr
59
    mov     ecx, 576
60
    call    TConsole_Prout
61
    mov     ecx, 577
62
    call    TConsole_Prout
63
 
64
    mcLoadLocal esi, loc50.pTrekData
65
    fld     [glb_dbl_30]
66
    fld     [esi + TREKDATA.ENERGY]
67
    mc_CMP_ST0_ST1
68
    jnc     .L10
69
 
70
    mov     ecx, 578
71
    call    TConsole_Prout
72
    jmp     .done
73
 
74
.L10:
75
    mov     ecx, 579
76
    call    TConsole_Prout
77
 
78
    mcLoadLocal esi, loc50.pTrekData
79
    fld     [esi + TREKDATA.ENERGY]
80
    fld     [glb_dbl_20]
81
    fsubp
82
    fld     [glb_dbl_0dot01]
83
    fmulp
84
    fld     [glb_dbl_0dot05]
85
    fsubp
86
 
87
    mov     cl, 1
88
    call    TConsole_CramFloat
89
 
90
    mov     ecx, 580
91
    call    TConsole_Prout
92
    jmp     .done
93
 
94
.L20:
95
    mcLoadLocal esi, loc50.pTrekData
96
    fld     [esi + TREKDATA.DIST]
97
    fld     [glb_dbl_0dot095]
98
    fdivp
99
    fstp    [esi + TREKDATA.TIME]
100
 
101
    fld     [esi + TREKDATA.REMTIME]
102
    fld     [esi + TREKDATA.TIME]
103
    mc_CMP_ST0_ST1
104
    jc      .L30
105
 
106
    call    TConsole_SetCrewMsgAttr
107
    mov     ecx, 581
108
    call    TConsole_Prout
109
    mov     ecx, 582
110
    call    TConsole_Prout
111
    mov     ecx, 583
112
    call    TConsole_Prout
113
 
114
    mcLoad8bitsToReg32 ecx, 158
115
    call    TGame_JA
116
    jnc     .done
117
 
118
.L30:
119
    call    TMove_Move
120
    mcLoadLocal esi, loc50.pTrekData
121
    inc     [esi + TREKDATA.IDIDIT]
122
 
123
    cmp     [esi + TREKDATA.ALLDONE], 0
124
    jne     .done
125
 
126
    fld     [esi + TREKDATA.DIST]
127
    fld     [glb_dbl_100]
128
    fmulp
129
    fld     [glb_dbl_20]
130
    faddp
131
    fld     [esi + TREKDATA.ENERGY]
132
    fsubrp
133
    fstp    [esi + TREKDATA.ENERGY]
134
 
135
    fld     [esi + TREKDATA.DIST]
136
    fld     [glb_dbl_0dot095]
137
    fdivp
138
    fstp    [esi + TREKDATA.TIME]
139
 
140
    fld     [esi + TREKDATA.ENERGY]
141
    fldz
142
    mc_CMP_ST0_ST1
143
    jc      .done
144
 
145
    mov     al, 4
146
    call    TFinish_Main
147
    jmp     .done
148
 
149
.L40:
150
    call    TConsole_ScrollUp
151
    mov     ecx, 584
152
    call    TConsole_ProutGameMsg
153
 
154
.done:
155
    mcEndLocals loc50.size
156
    ret
157
 
158
; --- EOF ---