Subversion Repositories Kolibri OS

Rev

Rev 2080 | Rev 2125 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2080 Rev 2107
Line 18... Line 18...
18
include 'lang.inc'
18
include 'lang.inc'
Line 19... Line 19...
19
 
19
 
Line 20... Line 20...
20
debug equ 0
20
debug equ 0
21
 
-
 
Line 22... Line 21...
22
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
21
 
23
capt db 'info 3ds 20.08.11',0 ;¯®¤¯¨áì ®ª­ 
22
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
24
 
23
 
25
struct FileInfoBlock
24
struct FileInfoBlock
Line 87... Line 86...
87
		stdcall dword[img_destroy], dword[image_data]
86
		stdcall dword[img_destroy], dword[image_data]
88
	@@:
87
	@@:
89
}
88
}
Line 90... Line 89...
90
 
89
 
91
;--------------------------------------
90
;--------------------------------------
Line 92... Line -...
92
sizeof.block_3ds equ 9
-
 
93
 
-
 
94
macro block_3ds id,icon,par,caption
-
 
95
{
-
 
96
	dw id ;+0 ¨¤¥­â¨ä¨ª â®à ¡«®ª  ¢ ä ©«¥ 3ds
-
 
97
	dw icon ;+2 ­®¬¥à ¨ª®­ª¨ ¤«ï ¡«®ª 
-
 
98
	db par ;+4 ᮤ¥à¦¨â «¨ ¡«®ª ¯®¤¡«®ª¨ (0-¤  1-­¥â)
-
 
99
	dd caption+0 ;+5 ®¯¨á ­¨¥ ¡«®ª 
-
 
100
}
-
 
101
 
-
 
102
CHUNK_MAIN		  equ 0x4D4D ; [-] á業 
-
 
103
CHUNK_color_1		  equ 0x0011 ; [+] 梥â rgb (byte format)
-
 
104
CHUNK_ambient_color	  equ 0x2100 ; [-] ambient color
-
 
105
  CHUNK_OBJMESH 	  equ 0x3D3D ; [-] ¢áïç¥áª¨¥ ®¡ê¥ªâë
-
 
106
    CHUNK_OBJBLOCK	  equ 0x4000 ; [+] ®¡ê¥ªâ
-
 
107
      CHUNK_TRIMESH	  equ 0x4100 ; [-] trimesh-®¡ê¥ªâ
-
 
108
	CHUNK_VERTLIST	  equ 0x4110 ; [+] ᯨ᮪ ¢¥à設
-
 
109
	CHUNK_FACELIST	  equ 0x4120 ; [+] ᯨ᮪ £à ­¥©
-
 
110
	CHUNK_FACEMAT	  equ 0x4130 ; [+] ¬ â¥à¨ «ë £à ­¥©
-
 
111
	CHUNK_MAPLIST	  equ 0x4140 ; [+] ⥪áâãà­ë¥ ª®®à¤¨­ âë
-
 
112
	CHUNK_TRMATRIX	  equ 0x4160 ; [+] ¬ âà¨æ  ¯¥à¥¢®¤ 
-
 
113
      CHUNK_CAMERA	  equ 0x4700 ; [+] ®¡ê¥ªâ-ª ¬¥à 
-
 
114
  CHUNK_MATERIAL	  equ 0xAFFF ; [-] ¬ â¥à¨ «
-
 
115
    CHUNK_MATNAME	  equ 0xA000 ; [+] ­ §¢ ­¨¥ ¬ â¥à¨ « 
-
 
116
    CHUNK_TEXTURE	  equ 0xA200 ; [-] ⥪áâãà  ¬ â¥à¨ « 
-
 
117
      CHUNK_MAPFILE	  equ 0xA300 ; [+] ¨¬ï ä ©«  ⥪áâãàë
-
 
118
  CHUNK_KEYFRAMER	  equ 0xB000 ; [-] ¨­ä®à¬ æ¨ï ®¡  ­¨¬ æ¨¨
-
 
119
  CHUNK_TRACKINFO	  equ 0xB002 ; [-] ¯®¢¥¤¥­¨¥ ®¡ê¥ªâ 
-
 
120
    CHUNK_TRACKOBJNAME	  equ 0xB010 ; [+] ­ §¢ ­¨¥ í⮣® ®¡ê¥ªâ 
-
 
121
    CHUNK_TRACKPIVOT	  equ 0xB013 ; [+] 業âà ¢à é¥­¨ï ®¡ê¥ªâ 
-
 
122
    CHUNK_TRACKPOS	  equ 0xB020 ; [+] âà ¥ªâ®à¨ï ®¡ê¥ªâ 
-
 
123
    CHUNK_TRACKROTATE	  equ 0xB021 ; [+] âà ¥ªâ®à¨ï ¢à é¥­¨ï ®¡ê¥ªâ 
-
 
124
  CHUNK_TRACKCAMERA	  equ 0xB003 ; [-] ¯®¢¥¤¥­¨¥ ª ¬¥àë
-
 
125
    CHUNK_TRACKFOV	  equ 0xB023 ; [+] ¯®¢¥¤¥­¨¥ FOV ª ¬¥àë
-
 
126
    CHUNK_TRACKROLL	  equ 0xB024 ; [+] ¯®¢¥¤¥­¨¥ roll ª ¬¥àë
-
 
127
  CHUNK_TRACKCAMTGT	  equ 0xB004 ; [-] ¯®¢¥¤¥­¨¥ "楫¨" ª ¬¥àë
-
 
128
 
-
 
129
;¤ ­­ë¥ ᮤ¥à¦ â «¨èì ¡«®ª¨, ®â¬¥ç¥­­ë¥ ¯«îᮬ, ®áâ «ì­ë¥ ¡«®ª¨
-
 
130
; á®áâ®ïâ «¨èì ¨§ ¯®¤¡«®ª®¢
-
 
131
 
-
 
132
MAX_FILE_LEVEL equ 20 ;¬ ªá¨¬ «ì­ë© ã஢¥­ì ¢«®¦¥­­®á⨠¡«®ª®¢ ¤«ï  ­ «¨§ 
91
include 'data.inc'
133
MAX_FILE_SIZE equ 150*0x400 ;¬ ªá¨¬ «ì­ë© à §¬¥à ä ©«  (50 Kb)
92
 
Line 134... Line 93...
134
level_stack dd 0
93
level_stack dd 0
135
offs_last_timer dd 0 ;¯®á«¥¤­¨© ᤢ¨£ ¯®ª § ­ë© ¢ ä㭪樨 â ©¬¥à 
94
offs_last_timer dd 0 ;¯®á«¥¤­¨© ᤢ¨£ ¯®ª § ­ë© ¢ ä㭪樨 â ©¬¥à 
136
 
95
 
Line 137... Line 96...
137
ID_ICON_CHUNK_MAIN equ 0 ;¨ª®­ª  £« ¢­®£® ¡«®ª 
96
ID_ICON_CHUNK_MAIN equ 0 ;¨ª®­ª  £« ¢­®£® ¡«®ª 
Line 138... Line 97...
138
ID_ICON_CHUNK_NOT_FOUND equ 1 ;¨ª®­ª  ­¥ ¨§¢¥áâ­®£® ¡«®ª 
97
ID_ICON_CHUNK_NOT_FOUND equ 1 ;¨ª®­ª  ­¥ ¨§¢¥áâ­®£® ¡«®ª 
139
ID_ICON_DATA equ 2 ;¨ª®­ª  ¤«ï ¤ ­­ëå ¡«®ª , ­¥ ®¯à¥¤¥«¥­­®© áâàãªâãàë
-
 
140
 
-
 
141
FILE_ERROR_CHUNK_SIZE equ -3 ;®è¨¡ª  ¢ à §¬¥à¥ ¡«®ª 
-
 
142
 
-
 
143
align 4
-
 
144
type_bloks:
-
 
145
block_3ds 0x0002,5,1,txt_0002
-
 
146
block_3ds 0x3d3e,5,1 ;mesh version
-
 
147
block_3ds 0xA010,4,0 ;material ambient color
-
 
148
block_3ds 0xA020,4,0 ;material diffuse color
-
 
149
block_3ds 0xA030,4,0 ;material specular color
-
 
150
block_3ds CHUNK_color_1,     4,1 ; [+] 梥â rgb (byte format)
-
 
151
block_3ds CHUNK_ambient_color,3,0 ; [-] ambient color
-
 
152
block_3ds CHUNK_OBJMESH,     3,0 ; [-] ¢áïç¥áª¨¥ ®¡ê¥ªâë
-
 
153
block_3ds CHUNK_OBJBLOCK,    3,1,txt_4000
-
 
154
block_3ds CHUNK_TRIMESH,     3,0 ; [-] trimesh-®¡ê¥ªâ
-
 
155
block_3ds CHUNK_VERTLIST,    3,1,txt_4110
-
 
156
block_3ds CHUNK_FACELIST,    3,1,txt_4120
-
 
157
block_3ds CHUNK_FACEMAT,     3,1 ; [+] ¬ â¥à¨ «ë £à ­¥©
-
 
158
block_3ds CHUNK_MAPLIST,     3,1 ; [+] ⥪áâãà­ë¥ ª®®à¤¨­ âë
-
 
159
block_3ds CHUNK_TRMATRIX,    3,1 ; [+] ¬ âà¨æ  ¯¥à¥¢®¤ 
-
 
160
block_3ds CHUNK_CAMERA,      3,1 ; [+] ®¡ê¥ªâ-ª ¬¥à 
-
 
161
block_3ds 0x4600,3,1,txt_4600
-
 
162
block_3ds CHUNK_MATERIAL,    3,0,txt_afff
-
 
163
block_3ds CHUNK_MATNAME,     3,1,txt_a000
-
 
164
block_3ds CHUNK_TEXTURE,     3,0,txt_a200
-
 
165
block_3ds CHUNK_MAPFILE,     6,1,txt_a300
-
 
166
block_3ds CHUNK_KEYFRAMER,   3,0,txt_b000
-
 
167
block_3ds CHUNK_TRACKINFO,   3,0,txt_b002
-
 
168
block_3ds CHUNK_TRACKOBJNAME,3,1,txt_b010
-
 
169
block_3ds CHUNK_TRACKPIVOT,  3,1,txt_b013
-
 
170
block_3ds CHUNK_TRACKPOS,    3,1 ; [+] âà ¥ªâ®à¨ï ®¡ê¥ªâ 
-
 
171
block_3ds CHUNK_TRACKROTATE, 3,1 ; [+] âà ¥ªâ®à¨ï ¢à é¥­¨ï ®¡ê¥ªâ 
-
 
172
block_3ds CHUNK_TRACKCAMERA, 3,0 ; [-] ¯®¢¥¤¥­¨¥ ª ¬¥àë
-
 
173
block_3ds CHUNK_TRACKFOV,    3,1 ; [+] ¯®¢¥¤¥­¨¥ FOV ª ¬¥àë
-
 
174
block_3ds CHUNK_TRACKROLL,   3,1 ; [+] ¯®¢¥¤¥­¨¥ roll ª ¬¥àë
-
 
175
block_3ds CHUNK_TRACKCAMTGT, 3,0 ; [-] ¯®¢¥¤¥­¨¥ "楫¨" ª ¬¥àë
-
 
176
.end:
-
 
177
 
-
 
178
if lang eq ru
-
 
179
txt_0002 db '3ds ¢¥àá¨ï',0
-
 
180
txt_4000 db 'Ž¡ê¥ªâ (á ¨¬¥­¥¬)',0
-
 
181
txt_4110 db '‘¯¨á®ª ¢¥à設',0
-
 
182
txt_4120 db '‘¯¨á®ª £à ­¥©',0
-
 
183
txt_4600 db '‘¢¥â',0
-
 
184
txt_a000 db ' §¢ ­¨¥ ¬ â¥à¨ « ',0
-
 
185
txt_a200 db '’¥ªáâãà  ¬ â¥à¨ «  1',0
-
 
186
txt_a300 db 'ˆ¬ï ä ©«  ⥪áâãàë',0
-
 
187
txt_afff db 'Œ â¥à¨ «',0
-
 
188
txt_b000 db 'ˆ­ä®à¬ æ¨ï ®¡  ­¨¬ æ¨¨',0
-
 
189
txt_b002 db '®¢¥¤¥­¨¥ ®¡ê¥ªâ ',0
-
 
190
txt_b010 db ' §¢ ­¨¥ ®¡ê¥ªâ ',0
-
 
191
txt_b013 db '–¥­âà ¢à é¥­¨ï ®¡ê¥ªâ ',0
-
 
192
else
-
 
193
txt_0002 db '3ds version',0
-
 
194
txt_4000 db 'Object (with name)',0
-
 
195
txt_4110 db 'Vertices list',0
-
 
196
txt_4120 db 'Faces description',0
-
 
197
txt_4600 db 'Light',0
-
 
198
txt_a000 db 'Material name',0
-
 
199
txt_a200 db 'Texture map 1',0
-
 
200
txt_a300 db 'Mapping filename',0
-
 
201
txt_afff db 'Meterial',0
-
 
202
txt_b000 db 'Keyframer',0
-
 
203
txt_b002 db 'Mesh information',0
-
 
204
txt_b010 db 'Object name',0
98
ID_ICON_DATA equ 2 ;¨ª®­ª  ¤«ï ¤ ­­ëå ¡«®ª , ­¥ ®¯à¥¤¥«¥­­®© áâàãªâãàë
205
txt_b013 db 'Object pivot point',0
99
 
206
end if
100
FILE_ERROR_CHUNK_SIZE equ -3 ;®è¨¡ª  ¢ à §¬¥à¥ ¡«®ª 
207
 
101
 
Line 208... Line 102...
208
align 4
102
align 4
209
file_3ds:
103
file_3ds:
210
.offs: dd 0 ;+0 㪠§ â¥«ì ­  ­ ç «® ¡«®ª 
104
.offs: dd 0 ;+0 㪠§ â¥«ì ­  ­ ç «® ¡«®ª 
Line 211... Line -...
211
.size: dd 0 ;+4 à §¬¥à ¡«®ª  (¤«ï 1-£® ¯ à ¬¥âà  = à §¬¥à ä ©«  3ds)
-
 
212
rb 8*MAX_FILE_LEVEL
-
 
213
 
-
 
214
size_one_list equ 40
-
 
215
list_offs_text equ 12 ;ᤢ¨£ ­ ç «  ⥪áâ  ¢ «¨áâ¥
-
 
216
buffer rb size_one_list ;¡ãä¥à ¤«ï ¤®¡ ¢«¥­¨ï áâàãªâãà ¢ ᯨ᮪ tree1
-
 
217
 
-
 
218
if lang eq ru
-
 
219
txt_open_3ds db 'Žâªàëâ ä ©«:',0
-
 
220
txt_no_3ds db 'Žâªàëâë© ä ©« ­¥ ¢ ä®à¬ â¥ *.3ds',0
-
 
221
txt_3ds_big_file db ' §¬¥à ä ©«  ¡®«ìè¥ MAX_FILE_SIZE',0
-
 
222
txt_3ds_err_sizes db '‚®§¬®¦­® ä ©« ¯®¢à¥¦¤¥­',0
-
 
223
txt_3ds_offs:
-
 
224
	db '‘¬¥é¥­¨¥: '
-
 
225
	.dig: rb 8
-
 
226
	db 0
-
 
227
else
-
 
228
txt_open_3ds db 'Open file:',0
-
 
229
txt_no_3ds db 'Žâªàëâë© ä ©« ­¥ ¢ ä®à¬ â¥ *.3ds',0
-
 
230
txt_3ds_big_file db ' §¬¥à ä ©«  ¡®«ìè¥ MAX_FILE_SIZE',0
105
.size: dd 0 ;+4 à §¬¥à ¡«®ª  (¤«ï 1-£® ¯ à ¬¥âà  = à §¬¥à ä ©«  3ds)
231
txt_3ds_err_sizes db '‚®§¬®¦­® ä ©« ¯®¢à¥¦¤¥­',0
106
rb 8*MAX_FILE_LEVEL
Line 232... Line 107...
232
txt_3ds_offs:
107