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 |