Compare commits
1 Commits
add_usboth
...
blocks-add
Author | SHA1 | Date | |
---|---|---|---|
d538e7b4e8 |
@@ -69,7 +69,6 @@ img_files = {
|
|||||||
{"SETTINGS/SYSTEM.INI", "common/settings/system.ini"},
|
{"SETTINGS/SYSTEM.INI", "common/settings/system.ini"},
|
||||||
{"SETTINGS/TASKBAR.INI", "common/settings/taskbar.ini"},
|
{"SETTINGS/TASKBAR.INI", "common/settings/taskbar.ini"},
|
||||||
{"SETTINGS/SYSTEM.ENV", "common/settings/system.env"},
|
{"SETTINGS/SYSTEM.ENV", "common/settings/system.env"},
|
||||||
{"SETTINGS/USBDRV.DAT",VAR_DRVS .. "/usb/usbother/usbdrv.dat"},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
-- For russian build, add russian-only files.
|
-- For russian build, add russian-only files.
|
||||||
@@ -568,7 +567,6 @@ tup.append_table(img_files, {
|
|||||||
{"DRIVERS/OHCI.SYS", VAR_DRVS .. "/usb/ohci.sys"},
|
{"DRIVERS/OHCI.SYS", VAR_DRVS .. "/usb/ohci.sys"},
|
||||||
{"DRIVERS/EHCI.SYS", VAR_DRVS .. "/usb/ehci.sys"},
|
{"DRIVERS/EHCI.SYS", VAR_DRVS .. "/usb/ehci.sys"},
|
||||||
{"DRIVERS/USBHID.SYS", VAR_DRVS .. "/usb/usbhid/usbhid.sys"},
|
{"DRIVERS/USBHID.SYS", VAR_DRVS .. "/usb/usbhid/usbhid.sys"},
|
||||||
{"DRIVERS/USBOTHER.SYS",VAR_DRVS .. "/usb/usbother/usbother.sys"},
|
|
||||||
{"DRIVERS/USBSTOR.SYS", VAR_DRVS .. "/usb/usbstor.sys"},
|
{"DRIVERS/USBSTOR.SYS", VAR_DRVS .. "/usb/usbstor.sys"},
|
||||||
{"DRIVERS/RDC.SYS", VAR_DRVS .. "/video/rdc.sys"},
|
{"DRIVERS/RDC.SYS", VAR_DRVS .. "/video/rdc.sys"},
|
||||||
{"DRIVERS/COMMOUSE.SYS", VAR_DRVS .. "/mouse/commouse.sys"},
|
{"DRIVERS/COMMOUSE.SYS", VAR_DRVS .. "/mouse/commouse.sys"},
|
||||||
|
@@ -1,4 +0,0 @@
|
|||||||
if tup.getconfig("NO_FASM") ~= "" then return end
|
|
||||||
ROOT = "../../.."
|
|
||||||
tup.rule("usbother.asm", "fasm %f %o " .. tup.getconfig("PESTRIP_CMD") .. tup.getconfig("KPACK_CMD"), "%B.sys")
|
|
||||||
tup.rule("usbdrv.asm", "fasm %f %o ", "%B.dat")
|
|
@@ -1,214 +0,0 @@
|
|||||||
;*****************************************************************************;
|
|
||||||
; Copyright (C) 2025, Mikhail Frolov aka Doczom . All rights reserved. ;
|
|
||||||
; Distributed under terms of the 3-Clause BSD License. ;
|
|
||||||
;*****************************************************************************;
|
|
||||||
; File of usb drivers
|
|
||||||
; base = 0
|
|
||||||
; offset | Size | Name | Description
|
|
||||||
;=======================|=======|===============|=============================
|
|
||||||
; base + 0 | 4 | ID_drv_table | offset to dev_ven drv array
|
|
||||||
; base + 4 | 4 | Class_table | offset to class drv array
|
|
||||||
;
|
|
||||||
; n = 0 .. count driver with ID table
|
|
||||||
; nt = count driver with ID table
|
|
||||||
; ID_drv_table + 0*(n-1)| 4 | ID_TABLE | offset from base to table VID:PID
|
|
||||||
; ID_drv_table + 4*(n-1)| 4 | DRV_NAME | offset from base to name of driver
|
|
||||||
; ID_drv_table + 8*nt | 8 | __ZERO | terminaror of list
|
|
||||||
|
|
||||||
; k = 0 .. count driver on class code
|
|
||||||
; kt = count driver on class code
|
|
||||||
; Class_table + 0*(k-1) | 1 | LENGTH_CLASS | length of class code 1..3
|
|
||||||
; Class_table + 1*(k-1) | 1 | USB_CLASS | main usb class code (M)
|
|
||||||
; Class_table + 2*(k-1) | 1 | USB_SUBCLASS | USB subclass code or zero(V)
|
|
||||||
; Class_table + 2*(k-1) | 1 | USB_PROTOCOL | USB protocol code or zero(V)
|
|
||||||
; Class_table + 4*(k-1) | 4 | DRV_NAME | offset from base to name of driver
|
|
||||||
; Class_table + 8*kt | 8 | __ZERO | terminaror of list
|
|
||||||
|
|
||||||
; i = 0 .. count VID:PID
|
|
||||||
; it = count VID:PID
|
|
||||||
; ID_TABLE + 0*(i-1) | 2 | VID | Vendor id
|
|
||||||
; ID_TABLE + 2*(i-1) | 2 | PID | Product id
|
|
||||||
; ID_TABLE + 4*it | 4 | __ZERO | terminaror of list
|
|
||||||
|
|
||||||
|
|
||||||
macro INIT_USBDRV_FILE {
|
|
||||||
local ..id_list, ..class_list
|
|
||||||
|
|
||||||
format binary as 'dat'
|
|
||||||
use32
|
|
||||||
org 0
|
|
||||||
dd ..id_list
|
|
||||||
dd ..class_list
|
|
||||||
|
|
||||||
|
|
||||||
macro ID_DRV_TABLE \{
|
|
||||||
dd 0, 0
|
|
||||||
\}
|
|
||||||
|
|
||||||
macro CLASS_TABLE \{
|
|
||||||
dd 0, 0
|
|
||||||
\}
|
|
||||||
macro ID_TABLE \{
|
|
||||||
\}
|
|
||||||
macro DRV_NAME_LIST \{
|
|
||||||
\}
|
|
||||||
postpone \{
|
|
||||||
..id_list: ID_DRV_TABLE
|
|
||||||
..class_list: CLASS_TABLE
|
|
||||||
ID_TABLE
|
|
||||||
DRV_NAME_LIST
|
|
||||||
\}
|
|
||||||
}
|
|
||||||
|
|
||||||
macro ADD_CLASS drv_name, class, subclass, protocol {
|
|
||||||
|
|
||||||
local ..length, ..class_code, ..drv_name
|
|
||||||
|
|
||||||
..length = 3
|
|
||||||
|
|
||||||
match =X, class \{
|
|
||||||
err 'Class is mandatory argument'
|
|
||||||
\}
|
|
||||||
match =X, protocol \{
|
|
||||||
..length = 2
|
|
||||||
\}
|
|
||||||
match =X, subclass \{
|
|
||||||
..length = 1
|
|
||||||
\}
|
|
||||||
|
|
||||||
..class_code = ..length or (class shl 8)
|
|
||||||
|
|
||||||
if ..length = 3
|
|
||||||
..class_code = ..class_code or (protocol shl 24)
|
|
||||||
end if
|
|
||||||
if ..length = 2
|
|
||||||
..class_code = ..class_code or (subclass shl 16)
|
|
||||||
end if
|
|
||||||
|
|
||||||
|
|
||||||
; add in list
|
|
||||||
|
|
||||||
macro DRV_NAME_LIST \{
|
|
||||||
..drv_name: db drv_name, 0
|
|
||||||
DRV_NAME_LIST
|
|
||||||
\}
|
|
||||||
|
|
||||||
macro CLASS_TABLE \{
|
|
||||||
dd ..class_code, ..drv_name
|
|
||||||
CLASS_TABLE
|
|
||||||
\}
|
|
||||||
}
|
|
||||||
|
|
||||||
macro ADD_ID drv_name, [device_id] {
|
|
||||||
common
|
|
||||||
local ..drv_name, ..id_table
|
|
||||||
|
|
||||||
macro ID_TABLE \{
|
|
||||||
ID_TABLE
|
|
||||||
..id_table:
|
|
||||||
\}
|
|
||||||
|
|
||||||
reverse
|
|
||||||
local vid_pid
|
|
||||||
match VID:PID, device_id \{
|
|
||||||
vid_pid = (PID shl 16) + VID
|
|
||||||
\}
|
|
||||||
|
|
||||||
|
|
||||||
macro ID_TABLE \{
|
|
||||||
ID_TABLE
|
|
||||||
dd vid_pid
|
|
||||||
\}
|
|
||||||
|
|
||||||
common
|
|
||||||
macro ID_TABLE \{
|
|
||||||
ID_TABLE
|
|
||||||
dd 0
|
|
||||||
\}
|
|
||||||
macro DRV_NAME_LIST \{
|
|
||||||
..drv_name: db drv_name, 0
|
|
||||||
DRV_NAME_LIST
|
|
||||||
\}
|
|
||||||
macro ID_DRV_TABLE \{
|
|
||||||
dd ..id_table, ..drv_name
|
|
||||||
ID_DRV_TABLE
|
|
||||||
\}
|
|
||||||
}
|
|
||||||
|
|
||||||
; ADD ID driver Linux
|
|
||||||
macro ADD_IDL drv_name, [vendor_id, device_id] {
|
|
||||||
common
|
|
||||||
local ..drv_name, ..id_table
|
|
||||||
|
|
||||||
macro ID_TABLE \{
|
|
||||||
ID_TABLE
|
|
||||||
..id_table:
|
|
||||||
\}
|
|
||||||
|
|
||||||
reverse
|
|
||||||
local vid_pid
|
|
||||||
vid_pid = (device_id shl 16) + vendor_id
|
|
||||||
|
|
||||||
macro ID_TABLE \{
|
|
||||||
ID_TABLE
|
|
||||||
dd vid_pid
|
|
||||||
\}
|
|
||||||
|
|
||||||
common
|
|
||||||
macro ID_TABLE \{
|
|
||||||
ID_TABLE
|
|
||||||
dd 0
|
|
||||||
\}
|
|
||||||
macro DRV_NAME_LIST \{
|
|
||||||
..drv_name: db drv_name, 0
|
|
||||||
DRV_NAME_LIST
|
|
||||||
\}
|
|
||||||
macro ID_DRV_TABLE \{
|
|
||||||
dd ..id_table, ..drv_name
|
|
||||||
ID_DRV_TABLE
|
|
||||||
\}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
INIT_USBDRV_FILE
|
|
||||||
|
|
||||||
;ADD_CLASS 'usbcdc-ctrl' , 0x02, X , X
|
|
||||||
;ADD_CLASS 'usbimage' , 0x06, 1 , 1
|
|
||||||
;ADD_CLASS 'usbcdc-data' , 0x0A, X , X
|
|
||||||
;ADD_CLASS 'ccid' , 0x0B, X , X
|
|
||||||
;ADD_CLASS 'uvd' , 0x0E, X , X
|
|
||||||
;ADD_CLASS 'uvd_2' , 0x0E, 0x02, X
|
|
||||||
;ADD_CLASS 'usb_bluetooth' , 0xE0, 0x01, X
|
|
||||||
;ADD_CLASS 'usb_wifi' , 0xE0, 0x02, X
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ADD_ID 'usbftdi',\
|
|
||||||
0x0403:0 ; Any FTDI device
|
|
||||||
|
|
||||||
;https://github.com/avrdudes/avrdude/blob/main/src/usbdevs.h#L51
|
|
||||||
;ADD_ID 'usbasp',\
|
|
||||||
; 0x16c0:0x05dc,\ ; VOTI Obdev's free shared PID
|
|
||||||
; 0x03e8:0xc7b4,\ ; ATMEL (unofficial) USBasp
|
|
||||||
; 0x16c0:0x092f ; VOTI NIBObee PID
|
|
||||||
|
|
||||||
;https://github.com/WCHSoftGroup/ch341par_linux/blob/main/driver/ch34x_pis.c
|
|
||||||
;ADD_IDL 'ch341par',\
|
|
||||||
; 0x1a86, 0x5512,\ ; ch341a default
|
|
||||||
; 0x1a86, 0x55db,\ ; CH347T Mode1 SPI+IIC+UART
|
|
||||||
; 0x1a86, 0x55dd,\ ; CH347T Mode3 JTAG+UART
|
|
||||||
; 0x1a86, 0x55de,\ ; CH347F
|
|
||||||
; 0x1a86, 0x55e7 ; CH339W
|
|
||||||
|
|
||||||
;https://github.com/openbsd/src/blob/master/sys/dev/usb/uchcom.c
|
|
||||||
;https://github.com/WCHSoftGroup/ch341ser_linux/blob/main/driver/ch341.c
|
|
||||||
;ADD_IDL 'ch341ser',\
|
|
||||||
; 0x1a86, 0x7523,\ ; ch340 chip
|
|
||||||
; 0x1a86, 0x7522,\ ; ch340k chip
|
|
||||||
; 0x1a86, 0x5523,\ ; ch341 chip
|
|
||||||
; 0x1a86, 0xe523,\ ; ch330 chip
|
|
||||||
; 0x4348, 0x5523 ; ch340 custom chip
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@@ -1,523 +0,0 @@
|
|||||||
;*****************************************************************************;
|
|
||||||
; Copyright (C) 2025, Mikhail Frolov aka Doczom . All rights reserved. ;
|
|
||||||
; Distributed under terms of the 3-Clause BSD License. ;
|
|
||||||
; ;
|
|
||||||
; usbother is a driver for loading USB drivers of a certain class and vendor. ;
|
|
||||||
; ;
|
|
||||||
; Version 0.1.1, 24 May 2025 ;
|
|
||||||
; ;
|
|
||||||
;*****************************************************************************;
|
|
||||||
format PE native 0.05
|
|
||||||
entry START
|
|
||||||
; const
|
|
||||||
|
|
||||||
DRV_VERSION = 0x0101 ; 0.1.1
|
|
||||||
|
|
||||||
|
|
||||||
; struct
|
|
||||||
include '../../struct.inc'
|
|
||||||
|
|
||||||
; USB device descriptor
|
|
||||||
struct DEVICE_DESCR
|
|
||||||
bLength db ?
|
|
||||||
bDescriptorType db ?
|
|
||||||
bcdUSB dw ?
|
|
||||||
bDeviceClass db ?
|
|
||||||
bDeviceSubClass db ?
|
|
||||||
bDeviceProtocol db ?
|
|
||||||
bMaxPacketSize0 db ?
|
|
||||||
idVendor dw ?
|
|
||||||
idProduct dw ?
|
|
||||||
bcdDevice dw ?
|
|
||||||
iManufacturer db ?
|
|
||||||
iProduct db ?
|
|
||||||
iSerialNumber db ?
|
|
||||||
bNumConfigurations db ?
|
|
||||||
ends
|
|
||||||
|
|
||||||
struct INTERFACE_DESCR
|
|
||||||
bLength db ?
|
|
||||||
bDescriptorType db ?
|
|
||||||
bInterfaceNumber db ?
|
|
||||||
bAlternateSetting db ?
|
|
||||||
bNumEndpoints db ?
|
|
||||||
bInterfaceClass db ?
|
|
||||||
bInterfaceSubClass db ?
|
|
||||||
bInterfaceProtocol db ?
|
|
||||||
iInterface db ?
|
|
||||||
ends
|
|
||||||
|
|
||||||
|
|
||||||
struct SRV
|
|
||||||
srv_name rb 16 ;ASCIIZ string
|
|
||||||
magic dd ? ;+0x10 ;'SRV '
|
|
||||||
size dd ? ;+0x14 ;size of structure SRV
|
|
||||||
fd dd ? ;+0x18 ;next SRV descriptor
|
|
||||||
bk dd ? ;+0x1C ;prev SRV descriptor
|
|
||||||
base dd ? ;+0x20 ;service base address
|
|
||||||
entry dd ? ;+0x24 ;service START function
|
|
||||||
srv_proc dd ? ;+0x28 ;user mode service handler
|
|
||||||
srv_proc_ex dd ? ;+0x2C ;kernel mode service handler
|
|
||||||
ends
|
|
||||||
|
|
||||||
struct USBSRV
|
|
||||||
srv SRV
|
|
||||||
usb_func dd ?
|
|
||||||
ends
|
|
||||||
|
|
||||||
struct USBFUNC
|
|
||||||
strucsize dd ?
|
|
||||||
add_device dd ?
|
|
||||||
device_disconnect dd ?
|
|
||||||
ends
|
|
||||||
|
|
||||||
USBDRV_TYPE_NOLOCK = 0 ; usb device not controlled (native driver
|
|
||||||
; not found and IOCTL not opened device)
|
|
||||||
USBDRV_TYPE_NATIVE = 1 ; native PE kernel driver for usb
|
|
||||||
USBDRV_TYPE_IOCTL = 2 ; usb device is controlled by IOCTL service
|
|
||||||
; (driver or userspace process/threads)
|
|
||||||
USBDRV_IOCTL_BLOCKED = 4 ; blocked IOCTL interface, device disconnected
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct DRV_CONTEXT
|
|
||||||
next dd ?
|
|
||||||
prev dd ?
|
|
||||||
drv_hand dd ?
|
|
||||||
drv_pdata dd ?
|
|
||||||
flags dd ?
|
|
||||||
|
|
||||||
config_descr dd ?
|
|
||||||
interface_descr dd ?
|
|
||||||
ep rd 64 ; 32 IN + 32 OUT endpoints' pipes
|
|
||||||
ends
|
|
||||||
DRV_CONTEXT.ep0 fix (DRV_CONTEXT.ep + 0)
|
|
||||||
|
|
||||||
|
|
||||||
section '.flat' code readable writable executable
|
|
||||||
|
|
||||||
include '../../proc32.inc'
|
|
||||||
include '../../peimport.inc'
|
|
||||||
include '../../macros.inc'
|
|
||||||
|
|
||||||
|
|
||||||
proc START c, state:dword, cmdline:dword
|
|
||||||
|
|
||||||
cmp [state], DRV_ENTRY
|
|
||||||
jne .end
|
|
||||||
; init
|
|
||||||
|
|
||||||
mov ecx, drv_list_lock
|
|
||||||
invoke MutexInit
|
|
||||||
|
|
||||||
mov ecx, interface_list_lock
|
|
||||||
invoke MutexInit
|
|
||||||
|
|
||||||
; load drv_list
|
|
||||||
stdcall load_drv_list, default_list
|
|
||||||
test eax, eax
|
|
||||||
jnz .end
|
|
||||||
|
|
||||||
; reg driver
|
|
||||||
invoke RegUSBDriver, drv_name, service_proc, usb_functions
|
|
||||||
ret
|
|
||||||
.end:
|
|
||||||
xor eax, eax
|
|
||||||
ret
|
|
||||||
endp
|
|
||||||
|
|
||||||
proc load_drv_list stdcall, .path:dword
|
|
||||||
|
|
||||||
push ebx
|
|
||||||
mov ecx, drv_list_lock
|
|
||||||
invoke MutexLock
|
|
||||||
; load file
|
|
||||||
invoke LoadFile, [.path]
|
|
||||||
test eax, eax
|
|
||||||
push eax
|
|
||||||
jnz @f
|
|
||||||
mov dword[esp], -1
|
|
||||||
jmp .exit
|
|
||||||
@@:
|
|
||||||
cmp [drv_list], 0
|
|
||||||
jz @f
|
|
||||||
|
|
||||||
invoke KernelFree, [drv_list]
|
|
||||||
@@:
|
|
||||||
mov eax,[esp]
|
|
||||||
mov [drv_list], eax
|
|
||||||
mov dword[esp], 0
|
|
||||||
.exit:
|
|
||||||
mov ecx, drv_list_lock
|
|
||||||
invoke MutexUnlock
|
|
||||||
pop eax
|
|
||||||
pop ebx
|
|
||||||
ret
|
|
||||||
endp
|
|
||||||
|
|
||||||
|
|
||||||
proc service_proc stdcall, .ioctl:dword
|
|
||||||
|
|
||||||
push esi
|
|
||||||
or eax, -1
|
|
||||||
mov esi, [.ioctl]
|
|
||||||
|
|
||||||
mov ecx, [esi + IOCTL.io_code]
|
|
||||||
cmp ecx, .count_ioctl_codes
|
|
||||||
jae .fail
|
|
||||||
|
|
||||||
jmp dword[.table_subfunction + ecx*4]
|
|
||||||
|
|
||||||
.table_subfunction:
|
|
||||||
dd .get_version
|
|
||||||
dd .update_list
|
|
||||||
dd .get_array_dev
|
|
||||||
dd .get_full_dev_data
|
|
||||||
dd .open_dev
|
|
||||||
dd .close_dev
|
|
||||||
dd .control_transfer
|
|
||||||
dd .bulk_transfer
|
|
||||||
dd .interrupt_transfer
|
|
||||||
;dd .control_transfer_async
|
|
||||||
;dd .bulk_transfer_async
|
|
||||||
;dd .interrupt_transfer_async
|
|
||||||
.count_ioctl_codes = ($ - .table_subfunction)/4
|
|
||||||
|
|
||||||
.get_version:
|
|
||||||
mov eax, [esi + IOCTL.output]
|
|
||||||
cmp [esi + IOCTL.out_size], 4
|
|
||||||
jne .fail
|
|
||||||
|
|
||||||
mov dword[eax], DRV_VERSION
|
|
||||||
xor eax, eax
|
|
||||||
jmp .exit
|
|
||||||
|
|
||||||
.update_list:
|
|
||||||
; update list
|
|
||||||
mov ecx, [esi + IOCTL.input]
|
|
||||||
cmp [esi + IOCTL.inp_size], 0
|
|
||||||
jnz @f
|
|
||||||
|
|
||||||
mov ecx, default_list
|
|
||||||
@@:
|
|
||||||
stdcall load_drv_list, ecx
|
|
||||||
|
|
||||||
.exit:
|
|
||||||
pop esi
|
|
||||||
ret
|
|
||||||
|
|
||||||
.get_array_dev:
|
|
||||||
.get_full_dev_data:
|
|
||||||
.open_dev:
|
|
||||||
.close_dev:
|
|
||||||
;
|
|
||||||
.control_transfer:
|
|
||||||
.bulk_transfer:
|
|
||||||
.interrupt_transfer:
|
|
||||||
|
|
||||||
.fail:
|
|
||||||
or eax, -1
|
|
||||||
jmp .exit
|
|
||||||
endp
|
|
||||||
|
|
||||||
|
|
||||||
proc AddDevice stdcall, .config_pipe:dword, \
|
|
||||||
.config_descr:dword,\
|
|
||||||
.interface:dword
|
|
||||||
|
|
||||||
push esi edi
|
|
||||||
mov eax, sizeof.DRV_CONTEXT
|
|
||||||
invoke Kmalloc
|
|
||||||
test eax, eax
|
|
||||||
jz .err_init
|
|
||||||
|
|
||||||
mov esi, eax
|
|
||||||
|
|
||||||
mov ecx, interface_list_lock
|
|
||||||
invoke MutexLock
|
|
||||||
|
|
||||||
mov edx, [usb_interface_list] ; next
|
|
||||||
mov [esi + DRV_CONTEXT.next], edx
|
|
||||||
mov [esi + DRV_CONTEXT.prev], usb_interface_list
|
|
||||||
mov [usb_interface_list], esi
|
|
||||||
mov [edx + DRV_CONTEXT.prev], esi
|
|
||||||
|
|
||||||
mov ecx, interface_list_lock
|
|
||||||
invoke MutexUnlock
|
|
||||||
|
|
||||||
and [esi + DRV_CONTEXT.drv_hand], 0
|
|
||||||
mov [esi + DRV_CONTEXT.flags], USBDRV_TYPE_NOLOCK
|
|
||||||
|
|
||||||
; lock mutex
|
|
||||||
mov ecx, drv_list_lock
|
|
||||||
invoke MutexLock
|
|
||||||
|
|
||||||
; save device context data
|
|
||||||
mov eax, [.config_pipe]
|
|
||||||
mov [esi + DRV_CONTEXT.ep0], eax
|
|
||||||
mov eax, [.config_descr]
|
|
||||||
mov [esi + DRV_CONTEXT.config_descr], eax
|
|
||||||
mov eax, [.interface]
|
|
||||||
mov [esi + DRV_CONTEXT.interface_descr], eax
|
|
||||||
|
|
||||||
; get pointer to list
|
|
||||||
mov edx, [drv_list]
|
|
||||||
test edx, edx
|
|
||||||
jz .err_exit
|
|
||||||
|
|
||||||
mov edi, edx
|
|
||||||
add edi, [edx]
|
|
||||||
|
|
||||||
; get in ecx VID:PID code
|
|
||||||
invoke USBGetParam, [.config_pipe], 0
|
|
||||||
mov ecx, dword[eax + DEVICE_DESCR.idVendor]
|
|
||||||
|
|
||||||
.loop_id_drv:
|
|
||||||
cmp dword[edi], 0
|
|
||||||
jz .end_loop_id_drv
|
|
||||||
|
|
||||||
mov edx, [drv_list]
|
|
||||||
add edx, [edi] ; ID_TABLE
|
|
||||||
.loop_id:
|
|
||||||
cmp dword[edx], 0
|
|
||||||
jz .end_loop_id
|
|
||||||
|
|
||||||
; check id
|
|
||||||
mov eax, ecx
|
|
||||||
test word[edx + 2], 0xffff
|
|
||||||
jne @f
|
|
||||||
; driver for all devices of VID
|
|
||||||
and eax, 0xffff
|
|
||||||
@@:
|
|
||||||
cmp [edx], eax ; check VID:PID
|
|
||||||
je @f
|
|
||||||
|
|
||||||
add edx, 4
|
|
||||||
jmp .loop_id
|
|
||||||
@@: ; found
|
|
||||||
call .load_drv
|
|
||||||
jnz .exit
|
|
||||||
|
|
||||||
add edx, 4
|
|
||||||
jmp .loop_id
|
|
||||||
.end_loop_id:
|
|
||||||
add edi, 8
|
|
||||||
jmp .loop_id_drv
|
|
||||||
|
|
||||||
.end_loop_id_drv:
|
|
||||||
|
|
||||||
|
|
||||||
push esi
|
|
||||||
mov esi, str_1
|
|
||||||
invoke SysMsgBoardStr
|
|
||||||
pop esi
|
|
||||||
|
|
||||||
|
|
||||||
; get in ecx class code
|
|
||||||
mov eax, [.interface]
|
|
||||||
mov ecx, dword[eax + INTERFACE_DESCR.bInterfaceClass] ; 24-31 bits
|
|
||||||
|
|
||||||
mov edi, [drv_list]
|
|
||||||
add edi, [edi + 4]
|
|
||||||
.loop_class:
|
|
||||||
cmp dword[edi], 0
|
|
||||||
jz .end_loop_class
|
|
||||||
|
|
||||||
; check class
|
|
||||||
movzx eax, byte[edi] ; length
|
|
||||||
and eax, 11b ; protect - max length = 3
|
|
||||||
lea eax, [eax*8] ; 1 = 8; 2 = 16; 3 = 24
|
|
||||||
xor edx, edx
|
|
||||||
bts edx, eax
|
|
||||||
dec edx ; bitmask
|
|
||||||
|
|
||||||
mov eax, [edi]
|
|
||||||
shr eax, 8
|
|
||||||
and eax, edx ; good class in list
|
|
||||||
|
|
||||||
and edx, ecx ; good class of device
|
|
||||||
|
|
||||||
cmp eax, edx
|
|
||||||
je @f
|
|
||||||
|
|
||||||
add edi, 8
|
|
||||||
jmp .loop_class
|
|
||||||
@@: ; found
|
|
||||||
call .load_drv
|
|
||||||
jnz .exit
|
|
||||||
|
|
||||||
add edi, 8
|
|
||||||
jmp .loop_class
|
|
||||||
|
|
||||||
; IN: edi - item list of driver
|
|
||||||
; esi - DRV_CONTEXT
|
|
||||||
; OUT: ZF - not found zF - found
|
|
||||||
; function save drv handl in DRV_CONTEXT.drv_hand
|
|
||||||
; and pdata in DRV_CONTEXT.drv_pdata
|
|
||||||
.load_drv:
|
|
||||||
push ecx edx
|
|
||||||
; load driver
|
|
||||||
push esi
|
|
||||||
mov esi, str_2
|
|
||||||
invoke SysMsgBoardStr
|
|
||||||
pop esi
|
|
||||||
|
|
||||||
mov ecx, [drv_list]
|
|
||||||
add ecx, [edi + 4]
|
|
||||||
|
|
||||||
pusha
|
|
||||||
mov esi, ecx
|
|
||||||
invoke SysMsgBoardStr
|
|
||||||
mov esi, str_newline
|
|
||||||
invoke SysMsgBoardStr
|
|
||||||
popa
|
|
||||||
|
|
||||||
invoke GetService, ecx
|
|
||||||
test eax, eax
|
|
||||||
jz @f
|
|
||||||
|
|
||||||
mov [esi + DRV_CONTEXT.drv_hand], eax
|
|
||||||
; get function list
|
|
||||||
mov ecx, [eax + USBSRV.usb_func]
|
|
||||||
|
|
||||||
; call AddDevice of driver
|
|
||||||
stdcall [ecx + USBFUNC.add_device], [.config_pipe], \
|
|
||||||
[.config_descr],\
|
|
||||||
[.interface]
|
|
||||||
mov [esi + DRV_CONTEXT.drv_pdata], eax
|
|
||||||
test eax, eax
|
|
||||||
jnz .load_drv.good
|
|
||||||
|
|
||||||
push esi
|
|
||||||
mov esi, str_4
|
|
||||||
invoke SysMsgBoardStr
|
|
||||||
pop esi
|
|
||||||
|
|
||||||
and [esi + DRV_CONTEXT.drv_hand], 0
|
|
||||||
@@:
|
|
||||||
pushf
|
|
||||||
push esi
|
|
||||||
mov esi, str_5
|
|
||||||
invoke SysMsgBoardStr
|
|
||||||
pop esi
|
|
||||||
popf
|
|
||||||
|
|
||||||
pop edx ecx
|
|
||||||
retn
|
|
||||||
.load_drv.good:
|
|
||||||
pushf
|
|
||||||
push esi
|
|
||||||
mov esi, str_3
|
|
||||||
invoke SysMsgBoardStr
|
|
||||||
pop esi
|
|
||||||
popf
|
|
||||||
|
|
||||||
mov [esi + DRV_CONTEXT.flags], USBDRV_TYPE_NATIVE
|
|
||||||
pop edx ecx
|
|
||||||
retn
|
|
||||||
|
|
||||||
|
|
||||||
.err_exit:
|
|
||||||
mov eax, esi
|
|
||||||
invoke Kfree
|
|
||||||
xor esi, esi
|
|
||||||
.end_loop_class:
|
|
||||||
.exit:
|
|
||||||
; driver not found - Added libusb driver
|
|
||||||
|
|
||||||
; unlock mutex
|
|
||||||
mov ecx, drv_list_lock
|
|
||||||
invoke MutexUnlock
|
|
||||||
|
|
||||||
mov eax, esi
|
|
||||||
pop edi esi
|
|
||||||
ret
|
|
||||||
.err_init:
|
|
||||||
xor eax, eax
|
|
||||||
pop edi esi
|
|
||||||
ret
|
|
||||||
endp
|
|
||||||
|
|
||||||
|
|
||||||
proc DeviceDisconnected stdcall, .pdata:dword
|
|
||||||
|
|
||||||
mov eax, [.pdata]
|
|
||||||
|
|
||||||
test [eax + DRV_CONTEXT.flags], USBDRV_TYPE_NATIVE
|
|
||||||
jz .no_native
|
|
||||||
|
|
||||||
cmp [eax + DRV_CONTEXT.drv_hand], 0
|
|
||||||
jz .free
|
|
||||||
|
|
||||||
; call device disconnected
|
|
||||||
mov ecx, [eax + DRV_CONTEXT.drv_hand]
|
|
||||||
|
|
||||||
mov edx, [ecx + USBSRV.usb_func]
|
|
||||||
cmp dword[edx], USBFUNC.device_disconnect
|
|
||||||
jbe .free ; TODO: check
|
|
||||||
|
|
||||||
stdcall [edx + USBFUNC.device_disconnect], [eax + DRV_CONTEXT.drv_pdata]
|
|
||||||
.free:
|
|
||||||
; clear list of DRV_CONTENT
|
|
||||||
mov ecx, interface_list_lock
|
|
||||||
invoke MutexLock
|
|
||||||
|
|
||||||
mov eax, [.pdata]
|
|
||||||
mov edx, [eax + DRV_CONTEXT.prev]
|
|
||||||
mov ecx, [eax + DRV_CONTEXT.next]
|
|
||||||
mov [edx + DRV_CONTEXT.next], ecx
|
|
||||||
mov [ecx + DRV_CONTEXT.prev], edx
|
|
||||||
|
|
||||||
mov ecx, interface_list_lock
|
|
||||||
invoke MutexUnlock
|
|
||||||
|
|
||||||
; free context
|
|
||||||
mov eax, [.pdata]
|
|
||||||
invoke Kfree
|
|
||||||
ret
|
|
||||||
.no_native:
|
|
||||||
test [eax + DRV_CONTEXT.flags], USBDRV_TYPE_IOCTL
|
|
||||||
jz .free
|
|
||||||
|
|
||||||
; set state for block user api and clear struct
|
|
||||||
or [eax + DRV_CONTEXT.flags], USBDRV_IOCTL_BLOCKED
|
|
||||||
xor ecx, ecx
|
|
||||||
;mov [eax + DRV_CONTEXT.drv_hand], ecx
|
|
||||||
;mov [eax + DRV_CONTEXT.drv_pdata], ecx
|
|
||||||
mov [eax + DRV_CONTEXT.config_descr], ecx
|
|
||||||
mov [eax + DRV_CONTEXT.interface_descr], ecx
|
|
||||||
mov [eax + DRV_CONTEXT.ep0], ecx
|
|
||||||
; TODO
|
|
||||||
jmp .free
|
|
||||||
endp
|
|
||||||
|
|
||||||
; data
|
|
||||||
drv_list_lock MUTEX
|
|
||||||
|
|
||||||
drv_list dd ?
|
|
||||||
|
|
||||||
interface_list_lock MUTEX
|
|
||||||
usb_interface_list:
|
|
||||||
dd usb_interface_list
|
|
||||||
dd usb_interface_list
|
|
||||||
|
|
||||||
|
|
||||||
usb_functions:
|
|
||||||
dd .end - usb_functions
|
|
||||||
dd AddDevice
|
|
||||||
dd DeviceDisconnected
|
|
||||||
.end:
|
|
||||||
|
|
||||||
drv_name db 'usbother', 0
|
|
||||||
|
|
||||||
default_list: db '/sys/settings/usbdrv.dat', 0
|
|
||||||
|
|
||||||
str_1: db 'USBOTHER: Driver for this ID not found', 13, 10, 0
|
|
||||||
str_2: db 'USBOTHER: Check found driver: ', 0, 13, 10, 0
|
|
||||||
str_3: db 'USBOTHER: Device driver is good', 13, 10, 0
|
|
||||||
str_4: db 'USBOTHER: Device driver fail prob', 13, 10, 0
|
|
||||||
str_5: db 'USBOTHER: Device driver load error', 13, 10, 0
|
|
||||||
str_newline: db 13,10,0
|
|
||||||
|
|
||||||
data fixups
|
|
||||||
end data
|
|
@@ -60412,6 +60412,67 @@ dd -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
|
|||||||
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
|
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
|
||||||
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0
|
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0
|
||||||
@@:
|
@@:
|
||||||
|
db 'r1x3x1',0
|
||||||
|
align 4
|
||||||
|
dd (@f-$)/24 ;points
|
||||||
|
dd -1.95, -1.95, 0.0, -1.95, 9.95, 3.0, -1.95, 9.95,\
|
||||||
|
0.0, -1.95, 9.95, 3.0, -1.95, -1.95, 0.0, -1.95, -1.95,\
|
||||||
|
3.0, -1.95, 9.95, 3.0, 1.95, -1.95, 3.0, 1.95, 9.95,\
|
||||||
|
3.0, 1.95, -1.95, 3.0, -1.95, 9.95, 3.0, -1.95, -1.95,\
|
||||||
|
3.0, 1.95, -1.95, 3.0, 1.95, 9.95, 0.0, 1.95, 9.95,\
|
||||||
|
3.0, 1.95, 9.95, 0.0, 1.95, -1.95, 3.0, 1.95, -1.95,\
|
||||||
|
0.0, 1.95, -1.95, 0.0, 1.25, -1.25, 0.0, 1.95, 9.95,\
|
||||||
|
0.0, 1.95, -1.95, 0.0, -1.25, -1.25, 0.0, 1.25, -1.25,\
|
||||||
|
0.0, -1.25, -1.25, 0.0, -1.95, -1.95, 0.0, -1.25, 9.25,\
|
||||||
|
0.0, -1.95, -1.95, 0.0, -1.25, -1.25, 0.0, 1.95, -1.95,\
|
||||||
|
0.0, 1.25, 9.25, 0.0, 1.95, 9.95, 0.0, 1.25, -1.25,\
|
||||||
|
0.0, -1.25, 9.25, 0.0, 1.95, 9.95, 0.0, 1.25, 9.25,\
|
||||||
|
0.0, -1.25, 9.25, 0.0, -1.95, 9.95, 0.0, 1.95, 9.95,\
|
||||||
|
0.0, -1.95, 9.95, 0.0, -1.25, 9.25, 0.0, -1.95, -1.95,\
|
||||||
|
0.0, -1.95, -1.95, 0.0, 1.95, -1.95, 3.0, -1.95, -1.95,\
|
||||||
|
3.0, 1.95, -1.95, 3.0, -1.95, -1.95, 0.0, 1.95, -1.95,\
|
||||||
|
0.0, 1.95, 9.95, 0.0, -1.95, 9.95, 3.0, 1.95, 9.95,\
|
||||||
|
3.0, -1.95, 9.95, 3.0, 1.95, 9.95, 0.0, -1.95, 9.95,\
|
||||||
|
0.0, -1.25, -1.25, 1.999, -1.25, 9.25, 0.0, -1.25, 9.25,\
|
||||||
|
1.999, -1.25, 9.25, 0.0, -1.25, -1.25, 1.999, -1.25, -1.25,\
|
||||||
|
0.0, -1.25, -1.25, 1.999, 1.25, 9.25, 1.999, 1.25, -1.25,\
|
||||||
|
1.999, 1.25, 9.25, 1.999, -1.25, -1.25, 1.999, -1.25, 9.25,\
|
||||||
|
1.999, 1.25, -1.25, 0.0, 1.25, 9.25, 1.999, 1.25, 9.25,\
|
||||||
|
0.0, 1.25, 9.25, 1.999, 1.25, -1.25, 0.0, 1.25, -1.25,\
|
||||||
|
1.999, -1.25, 9.25, 0.0, 1.25, 9.25, 1.999, -1.25, 9.25,\
|
||||||
|
1.999, 1.25, 9.25, 1.999, -1.25, 9.25, 0.0, 1.25, 9.25,\
|
||||||
|
0.0, 1.25, -1.25, 0.0, -1.25, -1.25, 1.999, 1.25, -1.25,\
|
||||||
|
1.999, -1.25, -1.25, 1.999, 1.25, -1.25, 0.0, -1.25, -1.25,\
|
||||||
|
0.0
|
||||||
|
dd -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
|
||||||
|
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
|
||||||
|
0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0,\
|
||||||
|
0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0,\
|
||||||
|
1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,\
|
||||||
|
1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,\
|
||||||
|
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
|
||||||
|
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
|
||||||
|
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
|
||||||
|
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
|
||||||
|
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
|
||||||
|
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
|
||||||
|
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
|
||||||
|
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
|
||||||
|
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
|
||||||
|
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
|
||||||
|
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,\
|
||||||
|
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,\
|
||||||
|
1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,\
|
||||||
|
1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,\
|
||||||
|
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
|
||||||
|
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
|
||||||
|
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
|
||||||
|
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
|
||||||
|
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
|
||||||
|
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
|
||||||
|
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,\
|
||||||
|
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0
|
||||||
|
@@:
|
||||||
db 'f1x2x1',0
|
db 'f1x2x1',0
|
||||||
align 4
|
align 4
|
||||||
dd (@f-$)/24 ;points
|
dd (@f-$)/24 ;points
|
||||||
@@ -65876,6 +65937,76 @@ dd 0.32144, -0.94693, 0.0, 0.13052, -0.99145, 0.0, 0.44229, -0.89687, 0.0,\
|
|||||||
-0.7071, -0.70711, 0.0, -0.38269, -0.92388, 0.0, -0.70711, -0.70711, 0.0,\
|
-0.7071, -0.70711, 0.0, -0.38269, -0.92388, 0.0, -0.70711, -0.70711, 0.0,\
|
||||||
-0.38268, -0.92388, 0.0, -0.70711, -0.70711, 0.0, -0.38268, -0.92388, 0.0
|
-0.38268, -0.92388, 0.0, -0.70711, -0.70711, 0.0, -0.38268, -0.92388, 0.0
|
||||||
@@:
|
@@:
|
||||||
|
db 'a1x1x2',0
|
||||||
|
align 4
|
||||||
|
dd (@f-$)/24 ;points
|
||||||
|
dd -1.95, -1.95, 0.0, -1.95, 1.95, 3.0, -1.95, 1.95,\
|
||||||
|
0.0, -1.95, 1.95, 3.0, -1.95, -1.95, 0.0, -1.95, -1.94994,\
|
||||||
|
6.0, -1.95, -1.94994, 6.0, -1.95, -1.95, 0.0, -1.95, -1.95,\
|
||||||
|
6.0, -1.95, -1.94994, 6.0, 1.95, -1.95, 6.0, 1.95, -1.94994,\
|
||||||
|
6.0, 1.95, -1.95, 6.0, -1.95, -1.94994, 6.0, -1.95, -1.95,\
|
||||||
|
6.0, 1.95, -1.95, 0.0, 1.95, 1.95, 3.0, 1.95, -1.94994,\
|
||||||
|
6.0, 1.95, -1.95, 0.0, 1.95, -1.94994, 6.0, 1.95, -1.95,\
|
||||||
|
6.0, 1.95, 1.95, 3.0, 1.95, -1.95, 0.0, 1.95, 1.95,\
|
||||||
|
0.0, -1.95, -1.95, 0.0, 1.95, -1.95, 6.0, -1.95, -1.95,\
|
||||||
|
6.0, 1.95, -1.95, 6.0, -1.95, -1.95, 0.0, 1.95, -1.95,\
|
||||||
|
0.0, 1.95, 1.95, 0.0, -1.95, 1.95, 3.0, 1.95, 1.95,\
|
||||||
|
3.0, -1.95, 1.95, 3.0, 1.95, 1.95, 0.0, -1.95, 1.95,\
|
||||||
|
0.0, -1.95, 1.95, 3.0, 1.95, -1.94994, 6.0, 1.95, 1.95,\
|
||||||
|
3.0, 1.95, -1.94994, 6.0, -1.95, 1.95, 3.0, -1.95, -1.94994,\
|
||||||
|
6.0, 1.95, -1.95, 0.0, 1.25, -1.25, 0.0, 1.95, 1.95,\
|
||||||
|
0.0, 1.95, -1.95, 0.0, -1.25, -1.25, 0.0, 1.25, -1.25,\
|
||||||
|
0.0, -1.25, -1.25, 0.0, -1.95, -1.95, 0.0, -1.25, 1.25,\
|
||||||
|
0.0, -1.95, -1.95, 0.0, -1.25, -1.25, 0.0, 1.95, -1.95,\
|
||||||
|
0.0, 1.25, 1.25, 0.0, 1.95, 1.95, 0.0, 1.25, -1.25,\
|
||||||
|
0.0, -1.25, 1.25, 0.0, 1.95, 1.95, 0.0, 1.25, 1.25,\
|
||||||
|
0.0, -1.25, 1.25, 0.0, -1.95, 1.95, 0.0, 1.95, 1.95,\
|
||||||
|
0.0, -1.95, 1.95, 0.0, -1.25, 1.25, 0.0, -1.95, -1.95,\
|
||||||
|
0.0, -1.25, -1.25, 1.999, -1.25, 1.25, 0.0, -1.25, 1.25,\
|
||||||
|
1.999, -1.25, 1.25, 0.0, -1.25, -1.25, 1.999, -1.25, -1.25,\
|
||||||
|
0.0, -1.25, -1.25, 1.999, 1.25, 1.25, 1.999, 1.25, -1.25,\
|
||||||
|
1.999, 1.25, 1.25, 1.999, -1.25, -1.25, 1.999, -1.25, 1.25,\
|
||||||
|
1.999, 1.25, -1.25, 0.0, 1.25, 1.25, 1.999, 1.25, 1.25,\
|
||||||
|
0.0, 1.25, 1.25, 1.999, 1.25, -1.25, 0.0, 1.25, -1.25,\
|
||||||
|
1.999, -1.25, 1.25, 0.0, 1.25, 1.25, 1.999, -1.25, 1.25,\
|
||||||
|
1.999, 1.25, 1.25, 1.999, -1.25, 1.25, 0.0, 1.25, 1.25,\
|
||||||
|
0.0, 1.25, -1.25, 0.0, -1.25, -1.25, 1.999, 1.25, -1.25,\
|
||||||
|
1.999, -1.25, -1.25, 1.999, 1.25, -1.25, 0.0, -1.25, -1.25,\
|
||||||
|
0.0
|
||||||
|
dd -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
|
||||||
|
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
|
||||||
|
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
|
||||||
|
0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,\
|
||||||
|
1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,\
|
||||||
|
1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,\
|
||||||
|
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,\
|
||||||
|
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,\
|
||||||
|
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
|
||||||
|
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
|
||||||
|
0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0,\
|
||||||
|
0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0,\
|
||||||
|
0.0, 0.0, 0.60972, 0.79262, 0.0, 0.60972, 0.79262, 0.0, 0.60972,\
|
||||||
|
0.79262, 0.0, 0.60972, 0.79262, 0.0, 0.60972, 0.79262, 0.0, 0.60972,\
|
||||||
|
0.79262, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
|
||||||
|
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
|
||||||
|
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
|
||||||
|
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
|
||||||
|
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
|
||||||
|
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
|
||||||
|
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
|
||||||
|
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
|
||||||
|
-1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,\
|
||||||
|
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,\
|
||||||
|
0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
|
||||||
|
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
|
||||||
|
-1.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
|
||||||
|
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
|
||||||
|
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
|
||||||
|
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
|
||||||
|
0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0,\
|
||||||
|
0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0,\
|
||||||
|
0.0
|
||||||
|
@@:
|
||||||
db 'a1x2x2',0
|
db 'a1x2x2',0
|
||||||
align 4
|
align 4
|
||||||
dd (@f-$)/24 ;points
|
dd (@f-$)/24 ;points
|
||||||
|
170
programs/bcc32/games/blocks/models/model_9904_plesiosaur.bjs
Normal file
170
programs/bcc32/games/blocks/models/model_9904_plesiosaur.bjs
Normal file
@@ -0,0 +1,170 @@
|
|||||||
|
// block name, color, step, coord: x,y,z, rotation: x,y,z
|
||||||
|
|
||||||
|
const m1=6740181;
|
||||||
|
const m2=6650840;
|
||||||
|
const m3=16777215;
|
||||||
|
const m4=16757993;
|
||||||
|
const m5=8454144;
|
||||||
|
|
||||||
|
model_list=[
|
||||||
|
['b1x6x1', m1, 0, 0, -4, 0, 0,0,90],
|
||||||
|
['b2x6x1', m1, 0, 0, 0, 0, 0,0,90],
|
||||||
|
['b2x6x1', m1, 0, 0,-12, 0, 0,0,90],
|
||||||
|
['b2x4x1', m1, 0, 16, 0, 0, 0,0,90],
|
||||||
|
['b2x4x1', m1, 0, 16,-12, 0, 0,0,90],
|
||||||
|
['b1x4x1', m1, 0, 16, -4, 0, 0,0,90],
|
||||||
|
['u1x2x1', m1, 0,-24, -4, 0, 0,0,90],
|
||||||
|
['u1x2x1', m1, 0,-24, 0, 0, 0,0,90],
|
||||||
|
['u1x2x1', m1, 0,-24, -8, 0, 0,0,90],
|
||||||
|
['b2x3x1', m1, 0, 20, -8, 0, 0,0,0],
|
||||||
|
['t2x3x1', m1, 0, 28, -4, 0, 0,0,0],
|
||||||
|
['b1x3x1', m2, 0, -8,-16, 0, 0,0,90],
|
||||||
|
['b1x3x1', m2, 0, -8, 8, 0, 0,0,90],
|
||||||
|
['b1x3x1', m2, 0, 16, 8, 0, 0,0,90],
|
||||||
|
['b1x3x1', m2, 0, 16,-16, 0, 0,0,90],
|
||||||
|
['b1x3x1', m2, 0, 36, -8, 0, 0,0,0],
|
||||||
|
['b1x2x1', m2, 0, -8, 12, 0, 0,0,90],
|
||||||
|
['b1x2x1', m2, 0, -8,-20, 0, 0,0,90],
|
||||||
|
['b1x2x1', m2, 0, 20, 12, 0, 0,0,90],
|
||||||
|
['b1x2x1', m2, 0, 20,-20, 0, 0,0,90],
|
||||||
|
['b1x2x1', m2, 0, 16,-24, 0, 0,0,90],
|
||||||
|
['b1x2x1', m2, 0, 16, 16, 0, 0,0,90],
|
||||||
|
['b1x2x1', m2, 0,-12, 16, 0, 0,0,90],
|
||||||
|
['b1x2x1', m2, 0,-12,-24, 0, 0,0,90],
|
||||||
|
['t2x3x1', m2, 0, 40, -4, 0, 0,0,0],
|
||||||
|
['a1x2x2', m3, 0,-16,-20, 0, 0,0,90],
|
||||||
|
['a1x2x2', m3, 0,-16, 12, 0, 0,0,90],
|
||||||
|
['a1x2x2', m3, 0, 12, 12, 0, 0,0,90],
|
||||||
|
['a1x2x2', m3, 0, 12,-20, 0, 0,0,90],
|
||||||
|
['u1x2x2', m1, 1,-28, 0, 3, 0,0,90],
|
||||||
|
['u1x2x2', m1, 1,-28, -4, 3, 0,0,90],
|
||||||
|
['u1x2x2', m1, 1,-28, -8, 3, 0,0,90],
|
||||||
|
['b2x3x1', m1, 1,-24, -8, 3, 0,0,0],
|
||||||
|
['l2x2x1', m1, 1,-16, 4, 3, 0,0,180],
|
||||||
|
['l2x2x1', m1, 1,-16,-12, 3, 0,0,90],
|
||||||
|
['b2x3x1', m1, 1,-12, -8, 3, 0,0,0],
|
||||||
|
['t2x3x1', m1, 1, -8, 4, 3, 0,0,90],
|
||||||
|
['t2x3x1', m1, 1,-12, 12, 3, 0,0,180],
|
||||||
|
['t2x3x1', m1, 1,-12,-20, 3, 0,0,180],
|
||||||
|
['t2x3x1', m1, 1, -8,-12, 3, 0,0,-90],
|
||||||
|
['b2x3x1', m1, 1, 0, -8, 3, 0,0,0],
|
||||||
|
['b2x3x1', m1, 1, 8, -8, 3, 0,0,0],
|
||||||
|
['b1x2x1', m1, 1, 4, 4, 3, 0,0,90],
|
||||||
|
['b1x2x1', m1, 1, 4,-12, 3, 0,0,90],
|
||||||
|
['b1x2x1', m1, 1, 8,-16, 3, 0,0,0],
|
||||||
|
['b1x2x1', m1, 1, 8, 4, 3, 0,0,0],
|
||||||
|
['b1x4x1', m1, 1, 12, 4, 3, 0,0,0],
|
||||||
|
['b1x4x1', m1, 1, 12,-24, 3, 0,0,0],
|
||||||
|
['b1x2x1', m1, 1, 20, 0, 3, 0,0,90],
|
||||||
|
['b1x2x1', m1, 1, 20, -8, 3, 0,0,90],
|
||||||
|
['b1x4x1', m2, 1, 28, -4, 3, 0,0,90],
|
||||||
|
['b1x3x1', m1, 1, 40, -4, 3, 0,0,90],
|
||||||
|
['b2x3x1', m1, 2,-28, -8, 6, 0,0,0],
|
||||||
|
['t2x3x1', m1, 2,-20, -4, 6, 0,0,0],
|
||||||
|
['b2x3x1', m1, 2, -8, 0, 6, 0,0,90],
|
||||||
|
['b2x3x1', m1, 2, -8,-12, 6, 0,0,90],
|
||||||
|
['b2x3x1', m1, 2, 4,-16, 6, 0,0,90],
|
||||||
|
['b2x3x1', m1, 2, 4, 4, 6, 0,0,90],
|
||||||
|
['l2x2x1', m1, 2, 8, 0, 6, 0,0,90],
|
||||||
|
['l2x2x1', m1, 2, 8, -8, 6, 0,0,180],
|
||||||
|
['t2x3x1', m1, 2, 12, -4, 6, 0,0,0],
|
||||||
|
['u1x2x2', m1, 3,-32, -4, 9, 0,0,90],
|
||||||
|
['u1x2x2', m1, 3,-32, -8, 9, 0,0,90],
|
||||||
|
['u1x2x2', m1, 3,-32, 0, 9, 0,0,90],
|
||||||
|
['a1x2x3', m1, 3,-28, 0, 9, 0,0,-90],
|
||||||
|
['a1x2x3', m1, 3,-28, -8, 9, 0,0,-90],
|
||||||
|
['b1x3x1', m1, 3,-20, -4, 9, 0,0,90],
|
||||||
|
['b2x3x1', m1, 3,-16, -8, 9, 0,0,0],
|
||||||
|
['b2x3x1', m1, 3, -8, -8, 9, 0,0,0],
|
||||||
|
['b2x3x1', m1, 3, 0, 4, 9, 0,0,90],
|
||||||
|
['b2x3x1', m1, 3, 0,-16, 9, 0,0,90],
|
||||||
|
['b1x1x1', m1, 3,-12, 4, 9, 0,0,0],
|
||||||
|
['b1x1x1', m1, 3,-12,-12, 9, 0,0,0],
|
||||||
|
['l2x2x1', m1, 3, 4, 0, 9, 0,0,90],
|
||||||
|
['t2x3x1', m1, 3, 8, -4, 9, 0,0,0],
|
||||||
|
['t2x3x1', m1, 3, 4, -8, 9, 0,0,-180],
|
||||||
|
['b2x3x1', m1, 4,-32, -8, 12, 0,0,0],
|
||||||
|
['b1x1x1', m1, 4,-24, -4, 12, 0,0,0],
|
||||||
|
['b2x3x1', m1, 4,-12, -8, 12, 0,0,0],
|
||||||
|
['b1x1x1', m1, 4,-12, 4, 12, 0,0,0],
|
||||||
|
['b1x2x1', m1, 4, -4, 0, 12, 0,0,0],
|
||||||
|
['b1x3x1', m1, 4, -4,-12, 12, 0,0,0],
|
||||||
|
['b1x3x1', m1, 4, 4, -8, 12, 0,0,0],
|
||||||
|
['b1x4x1', m2, 4, 0,-12, 12, 0,0,0],
|
||||||
|
['b1x1x1', m2, 4, 8, -4, 12, 0,0,0],
|
||||||
|
['b1x1x1', m2, 4, 0, 4, 12, 0,0,0],
|
||||||
|
['b1x1x1', m2, 4, -8, 4, 12, 0,0,0],
|
||||||
|
['b1x1x1', m2, 4,-16, -4, 12, 0,0,0],
|
||||||
|
['b1x1x1', m2, 4, -8,-12, 12, 0,0,0],
|
||||||
|
['b2x3x1', m1, 5,-36, -8, 15, 0,0,0],
|
||||||
|
['t2x3x1', m1, 5,-28, -4, 15, 0,0,0],
|
||||||
|
['b1x3x1', m1, 5, -4, -8, 15, 0,0,0],
|
||||||
|
['b1x1x1', m2, 5, 0, -4, 15, 0,0,0],
|
||||||
|
['b1x3x1', m2, 5, -8, -8, 15, 0,0,0],
|
||||||
|
['b2x3x1', m1, 6,-36, -8, 18, 0,0,0],
|
||||||
|
['t2x3x1', m1, 6,-28, -4, 18, 0,0,0],
|
||||||
|
['l2x2x1', m1, 7,-36, -8, 21, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 7,-36, 0, 21, 0,0,0],
|
||||||
|
['b1x4x1', m1, 7,-36, -4, 21, 0,0,-90],
|
||||||
|
['u1x2x1', m1, 7,-28, 0, 21, 0,0,-90],
|
||||||
|
['u1x2x1', m1, 7,-28, -8, 21, 0,0,-90],
|
||||||
|
['b2x3x1', m1, 8,-48, -8, 24, 0,0,0],
|
||||||
|
['b2x3x1', m1, 8,-40, -8, 24, 0,0,0],
|
||||||
|
['u1x2x1', m4, 8,-40, -8, 21, 0,0,90],
|
||||||
|
['u1x2x1', m4, 8,-40, -4, 21, 0,0,90],
|
||||||
|
['u1x2x1', m4, 8,-40, 0, 21, 0,0,90],
|
||||||
|
['b2x3x1', m1, 8,-32,-12, 24, 0,0,0],
|
||||||
|
['b2x2x1', m1, 8,-32, 0, 24, 0,0,0],
|
||||||
|
['b1x3x1', m1, 8,-36, 4, 24, 0,0,90],
|
||||||
|
['b1x3x1', m1, 8,-36,-12, 24, 0,0,90],
|
||||||
|
['b1x1x1', m1, 8,-24, 0, 24, 0,0,0],
|
||||||
|
['b1x1x1', m1, 8,-24, -8, 24, 0,0,0],
|
||||||
|
['b1x1x1', m2, 8,-24, -4, 24, 0,0,0],
|
||||||
|
['u1x2x1', m1, 8,-32, 4, 21, 0,0,-90],
|
||||||
|
['u1x2x1', m1, 8,-32,-12, 21, 0,0,-90],
|
||||||
|
['b1x2x1', m2, 9,-24, -4, 27, 0,0,90],
|
||||||
|
['a1x1x2', m2, 9,-48, 0, 27, 0,0,90],
|
||||||
|
['a1x1x2', m2, 9,-48, -8, 27, 0,0,90],
|
||||||
|
['a1x1x2', m1, 9,-48, -4, 27, 0,0,90],
|
||||||
|
['b2x3x1', m1, 9,-44,-12, 27, 0,0,0],
|
||||||
|
['b2x3x1', m1, 9,-36, -8, 27, 0,0,0],
|
||||||
|
['b2x2x1', m1, 9,-44, 0, 27, 0,0,0],
|
||||||
|
['a1x2x3', m1, 9,-28, 0, 27, 0,0,-90],
|
||||||
|
['a1x2x3', m1, 9,-28, -8, 27, 0,0,-90],
|
||||||
|
['b1x1x1', m1, 9,-28,-12, 27, 0,0,0],
|
||||||
|
['b1x1x1', m1, 9,-28, 4, 27, 0,0,0],
|
||||||
|
['b1x1x1', m4, 9,-32,-12, 27, 0,0,90],
|
||||||
|
['b1x1x1', m4, 9,-32, 4, 27, 0,0,90],
|
||||||
|
['b1x1x1', m5, 9,-36,-12, 27, 0,0,90],
|
||||||
|
['b1x1x1', m5, 9,-36, 4, 27, 0,0,90],
|
||||||
|
['b1x1x1', m5, 10,-36, 4, 30, 0,0,90],
|
||||||
|
['b1x1x1', m5, 10,-36,-12, 30, 0,0,90],
|
||||||
|
['a1x2x3', m2, 10,-28, -4, 30, 0,0,-90],
|
||||||
|
['b2x3x1', m1, 10,-44, -8, 30, 0,0,0],
|
||||||
|
['b1x1x1', m1, 10,-40, 4, 30, 0,0,0],
|
||||||
|
['b1x1x1', m1, 10,-40,-12, 30, 0,0,0],
|
||||||
|
['l2x2x1', m1, 10,-32, -8, 30, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 10,-32, 0, 30, 0,0,0],
|
||||||
|
['a1x1x2', m1, 10,-44, 4, 30, 0,0,90],
|
||||||
|
['a1x1x2', m1, 10,-44,-12, 30, 0,0,90],
|
||||||
|
['a1x1x2', m1, 10,-28,-12, 30, 0,0,-90],
|
||||||
|
['a1x1x2', m1, 10,-28, 4, 30, 0,0,-90],
|
||||||
|
['t2x3x1', m1, 11,-40, -4, 33, 0,0,-180],
|
||||||
|
['t2x3x1', m2, 11,-32, -4, 33, 0,0,0],
|
||||||
|
['a1x1x2', m1, 11,-40, 4, 33, 0,0,0],
|
||||||
|
['a1x1x2', m1, 11,-36, 4, 33, 0,0,0],
|
||||||
|
['a1x1x2', m1, 11,-32, 4, 33, 0,0,0],
|
||||||
|
['a1x1x2', m1, 11,-28, 0, 33, 0,0,-90],
|
||||||
|
['a1x1x2', m1, 11,-28, -8, 33, 0,0,-90],
|
||||||
|
['a1x1x2', m1, 11,-32,-12, 33, 0,0,-180],
|
||||||
|
['a1x1x2', m1, 11,-36,-12, 33, 0,0,-180],
|
||||||
|
['a1x1x2', m1, 11,-40,-12, 33, 0,0,-180],
|
||||||
|
['a1x1x2', m1, 11,-44, -8, 33, 0,0,90],
|
||||||
|
['a1x1x2', m1, 11,-44, 0, 33, 0,0,90],
|
||||||
|
['a1x1x2', m2, 12,-44, -4, 36, 0,0,90],
|
||||||
|
['a1x1x2', m2, 12,-28, -4, 36, 0,0,-90],
|
||||||
|
['b1x3x1', m1, 12,-32, -4, 36, 0,0,90],
|
||||||
|
['r1x3x1', m1, 12,-32, 0, 36, 0,0,90],
|
||||||
|
['r1x3x1', m1, 12,-32, -8, 36, 0,0,90],
|
||||||
|
['r1x3x1', m2, 13,-32, -4, 39, 0,0,90],
|
||||||
|
];
|
200
programs/bcc32/games/blocks/models/model_9908_spinosaurus.bjs
Normal file
200
programs/bcc32/games/blocks/models/model_9908_spinosaurus.bjs
Normal file
@@ -0,0 +1,200 @@
|
|||||||
|
// block name, color, step, coord: x,y,z, rotation: x,y,z
|
||||||
|
|
||||||
|
const m1=0x008000;
|
||||||
|
const m2=0xffffff;
|
||||||
|
const m3=0xfff5be;
|
||||||
|
const m4=0x005100;
|
||||||
|
const m5=0xff0000;
|
||||||
|
const m6=0x510000;
|
||||||
|
const m7=0xffaaaa;
|
||||||
|
|
||||||
|
model_list=[
|
||||||
|
['b2x3x1', m1, 0, 32, -4, 9, 0,0,0],
|
||||||
|
['b1x1x1', m2, 0,-16, 4, 9, 0,0,0],
|
||||||
|
['b1x1x1', m2, 0,-16, -4, 9, 0,0,0],
|
||||||
|
['b1x1x1', m2, 0,-16, 12, 9, 0,0,0],
|
||||||
|
['b1x1x1', m2, 0,-16,-12, 9, 0,0,0],
|
||||||
|
['b1x3x1', m3, 0, 0, -4, 9, 0,0,0],
|
||||||
|
['b1x4x1', m3, 0, 16, 0, 9, 0,0,90],
|
||||||
|
['b1x3x1', m3, 0, 28, 0, 9, 0,0,90],
|
||||||
|
['b1x3x1', m1, 0, 40, -4, 9, 0,0,0],
|
||||||
|
['b1x1x1', m3, 0, 44, 0, 9, 0,0,0],
|
||||||
|
['b2x6x1', m3, 0, 24, 4, 9, 0,0,90],
|
||||||
|
['b2x6x1', m3, 0, 24, -8, 9, 0,0,90],
|
||||||
|
['l2x2x1', m1, 0, 16, 12, 9, 0,0,0],
|
||||||
|
['l2x2x1', m1, 0, 12, 12, 9, 0,0,90],
|
||||||
|
['l2x2x1', m1, 0, 12,-12, 9, 0,0,180],
|
||||||
|
['l2x2x1', m1, 0, 16,-12, 9, 0,0,-90],
|
||||||
|
['b2x3x1', m1, 1,-16, 4, 12, 0,0,0],
|
||||||
|
['b2x3x1', m1, 1,-16,-12, 12, 0,0,0],
|
||||||
|
['b1x4x1', m3, 1, 4, 4, 12, 0,0,90],
|
||||||
|
['b1x2x1', m3, 1, 12, 4, 12, 0,0,90],
|
||||||
|
['b2x6x1', m3, 1, 12, -4, 12, 0,0,90],
|
||||||
|
['b2x3x1', m1, 1, 16, -4, 12, 0,0,0],
|
||||||
|
['b2x2x1', m1, 1, 12, 8, 12, 0,0,0],
|
||||||
|
['b2x2x1', m1, 1, 12,-12, 12, 0,0,0],
|
||||||
|
['b1x2x1', m1, 1, 8, -8, 12, 0,0,90],
|
||||||
|
['b1x2x1', m1, 1, 24, -8, 12, 0,0,90],
|
||||||
|
['b1x2x1', m1, 1, 24, 8, 12, 0,0,90],
|
||||||
|
['b1x2x1', m1, 1, 8, 8, 12, 0,0,90],
|
||||||
|
['b1x3x1', m1, 1, 32, 4, 12, 0,0,90],
|
||||||
|
['b1x3x1', m1, 1, 32, -4, 12, 0,0,90],
|
||||||
|
['b1x6x1', m1, 1, 44, 0, 12, 0,0,90],
|
||||||
|
['b1x2x1', m1, 1, 44, 4, 12, 0,0,90],
|
||||||
|
['b1x2x1', m1, 1, 44, -4, 12, 0,0,90],
|
||||||
|
['b2x3x1', m1, 2, -4, 8, 15, 0,0,90],
|
||||||
|
['b2x3x1', m1, 2, -4,-12, 15, 0,0,90],
|
||||||
|
['b2x3x1', m1, 2, 8, -8, 15, 0,0,90],
|
||||||
|
['b2x3x1', m1, 2, 8, 4, 15, 0,0,90],
|
||||||
|
['b2x3x1', m1, 2, 12, -8, 15, 0,0,0],
|
||||||
|
['b2x3x1', m1, 2, 20, -8, 15, 0,0,0],
|
||||||
|
['b2x2x1', m1, 2, 12, 4, 15, 0,0,0],
|
||||||
|
['b2x2x1', m1, 2, 20, 4, 15, 0,0,0],
|
||||||
|
['t2x3x1', m1, 2, 28, 0, 15, 0,0,0],
|
||||||
|
['b2x3x1', m3, 2,-12, -4, 15, 0,0,0],
|
||||||
|
['b1x1x1', m4, 2, 36, 0, 15, 0,0,0],
|
||||||
|
['b1x3x1', m5, 2, 44, 0, 15, 0,0,-90],
|
||||||
|
['b1x2x1', m5, 2, 44, 4, 15, 0,0,-90],
|
||||||
|
['b1x2x1', m5, 2, 44, -4, 15, 0,0,-90],
|
||||||
|
['b1x1x1', m5, 2, 48, 0, 12, 0,0,0],
|
||||||
|
['b2x3x1', m3, 3,-16, -4, 18, 0,0,0],
|
||||||
|
['b1x1x1', m5, 3, 48, 0, 18, 0,0,0],
|
||||||
|
['b1x1x1', m4, 3, 28, 0, 18, 0,0,0],
|
||||||
|
['b1x3x1', m1, 3, -8, 4, 18, 0,0,0],
|
||||||
|
['b1x3x1', m1, 3, -8,-12, 18, 0,0,0],
|
||||||
|
['l2x2x1', m1, 3, -4, 8, 18, 0,0,0],
|
||||||
|
['l2x2x1', m1, 3, -4, -8, 18, 0,0,-90],
|
||||||
|
['b2x3x1', m1, 3, 12, 4, 18, 0,0,90],
|
||||||
|
['b2x3x1', m1, 3, 12, -8, 18, 0,0,90],
|
||||||
|
['b2x2x1', m1, 3, 16, 4, 18, 0,0,0],
|
||||||
|
['b2x2x1', m1, 3, 16, -8, 18, 0,0,0],
|
||||||
|
['b1x3x1', m1, 3, 24, -4, 18, 0,0,0],
|
||||||
|
['a1x1x2', m1, 3, 32, 0, 18, 0,0,90],
|
||||||
|
['b1x6x1', m1, 4, -8, 0, 21, 0,0,90],
|
||||||
|
['b1x6x1', m1, 4, -8, 4, 21, 0,0,90],
|
||||||
|
['b1x6x1', m1, 4, -8, -4, 21, 0,0,90],
|
||||||
|
['b1x6x1', m1, 4, -4, 8, 21, 0,0,90],
|
||||||
|
['b1x6x1', m1, 4, -4, -8, 21, 0,0,90],
|
||||||
|
['b1x2x1', m1, 4, 4, -8, 21, 0,0,90],
|
||||||
|
['b1x2x1', m1, 4, 4, 8, 21, 0,0,90],
|
||||||
|
['b2x3x1', m1, 4, 16, 4, 21, 0,0,90],
|
||||||
|
['b2x3x1', m1, 4, 16, -8, 21, 0,0,90],
|
||||||
|
['t2x3x1', m1, 4, 20, 0, 21, 0,0,0],
|
||||||
|
['b1x1x1', m4, 4, 28, 0, 21, 0,0,0],
|
||||||
|
['b2x3x1', m5, 5,-20, -4, 24, 0,0,0],
|
||||||
|
['b1x3x1', m5, 5,-12, -4, 24, 0,0,0],
|
||||||
|
['b1x1x1', m2, 5,-24, 0, 24, 0,0,0],
|
||||||
|
['c1x1x1', m2, 5,-16, 8, 24, 0,0,0],
|
||||||
|
['c1x1x1', m2, 5,-24, 8, 24, 0,0,0],
|
||||||
|
['c1x1x1', m2, 5,-24, -8, 24, 0,0,0],
|
||||||
|
['c1x1x1', m2, 5,-16, -8, 24, 0,0,0],
|
||||||
|
['b2x3x1', m1, 5, -8, 0, 24, 0,0,0],
|
||||||
|
['b2x3x1', m1, 5, 8, 4, 24, 0,0,90],
|
||||||
|
['b2x3x1', m1, 5, 4, -8, 24, 0,0,0],
|
||||||
|
['b2x3x1', m1, 5, 0, -8, 24, 0,0,90],
|
||||||
|
['b2x3x1', m1, 5, 12, -4, 24, 0,0,0],
|
||||||
|
['b1x1x1', m4, 5, 20, 0, 24, 0,0,0],
|
||||||
|
['b1x1x1', m1, 5, 24, 0, 24, 0,0,0],
|
||||||
|
['a1x1x2', m4, 5, 28, 0, 24, 0,0,90],
|
||||||
|
['b2x3x1', m5, 6,-28, -4, 27, 0,0,0],
|
||||||
|
['b2x3x1', m5, 6,-20, -4, 27, 0,0,0],
|
||||||
|
['b2x3x1', m5, 6,-12, -4, 27, 0,0,0],
|
||||||
|
['b2x3x1', m1, 6, -4, -8, 27, 0,0,0],
|
||||||
|
['b2x2x1', m1, 6, -4, 4, 27, 0,0,0],
|
||||||
|
['b1x6x1', m1, 6, -8, 8, 27, 0,0,90],
|
||||||
|
['b1x6x1', m1, 6, -8, -8, 27, 0,0,90],
|
||||||
|
['t2x3x1', m1, 6, 4, 0, 27, 0,0,0],
|
||||||
|
['b1x1x1', m4, 6, 12, 0, 27, 0,0,90],
|
||||||
|
['b1x1x1', m1, 6, 16, 0, 27, 0,0,0],
|
||||||
|
['b1x1x1', m4, 6, 20, 0, 27, 0,0,90],
|
||||||
|
['a1x1x2', m1, 6, 24, 0, 27, 0,0,90],
|
||||||
|
['b1x3x1', m1, 6,-32, -4, 27, 0,0,0],
|
||||||
|
['a1x2x2', m1, 7,-28, 4, 30, 0,0,90],
|
||||||
|
['a1x2x2', m1, 7,-28, 0, 30, 0,0,90],
|
||||||
|
['a1x2x2', m1, 7,-28, -4, 30, 0,0,90],
|
||||||
|
['b2x3x1', m1, 7,-24, -4, 30, 0,0,0],
|
||||||
|
['a1x3x2', m1, 7,-20, 8, 30, 0,0,90],
|
||||||
|
['a1x3x2', m1, 7,-20, -8, 30, 0,0,90],
|
||||||
|
['l2x2x1', m1, 7,-16, 4, 30, 0,0,0],
|
||||||
|
['l2x2x1', m1, 7,-16, -4, 30, 0,0,-90],
|
||||||
|
['b1x1x1', m6, 7,-12, -8, 30, 0,0,0],
|
||||||
|
['b1x1x1', m6, 7,-12, 8, 30, 0,0,0],
|
||||||
|
['b1x2x1', m7, 7, -8, -8, 30, 0,0,0],
|
||||||
|
['b1x2x1', m7, 7, -8, 4, 30, 0,0,0],
|
||||||
|
['b1x1x1', m1, 7, -4, 8, 30, 0,0,0],
|
||||||
|
['b1x1x1', m1, 7, -4, -8, 30, 0,0,0],
|
||||||
|
['a1x2x3', m1, 7, -4, 4, 30, 0,0,-90],
|
||||||
|
['a1x2x3', m1, 7, -4, -4, 30, 0,0,-90],
|
||||||
|
['b1x3x1', m1, 7, 0, 0, 30, 0,0,90],
|
||||||
|
['a1x1x2', m4, 7, 4, 0, 30, 0,0,90],
|
||||||
|
['b1x1x1', m1, 7, 8, 0, 30, 0,0,0],
|
||||||
|
['b1x1x1', m4, 7, 12, 0, 30, 0,0,0],
|
||||||
|
['b1x1x1', m1, 7, 16, 0, 30, 0,0,0],
|
||||||
|
['a1x1x2', m4, 7, 20, 0, 30, 0,0,90],
|
||||||
|
['r1x1x1', m1, 8,-28, 0, 33, 0,0,0],
|
||||||
|
['a1x3x2', m1, 8,-20, 4, 33, 0,0,90],
|
||||||
|
['a1x3x2', m1, 8,-20, -4, 33, 0,0,90],
|
||||||
|
['a1x2x2', m1, 8,-16, -8, 33, 0,0,90],
|
||||||
|
['a1x2x2', m1, 8,-16, 8, 33, 0,0,90],
|
||||||
|
['a1x2x2', m1, 8, -4, 4, 33, 0,0,0],
|
||||||
|
['a1x2x2', m1, 8, -4, -4, 33, 0,0,180],
|
||||||
|
['l2x2x1', m1, 8, -8, -4, 33, 0,0,180],
|
||||||
|
['l2x2x1', m1, 8, -8, 4, 33, 0,0,90],
|
||||||
|
['b1x2x1', m1, 8,-20, 0, 33, 0,0,90],
|
||||||
|
['b1x3x1', m1, 8,-16, -4, 33, 0,0,0],
|
||||||
|
['a1x2x3', m1, 8, -4, 0, 33, 0,0,-90],
|
||||||
|
['b1x1x1', m6, 8,-12, 8, 33, 0,0,0],
|
||||||
|
['b1x1x1', m6, 8,-12, -8, 33, 0,0,0],
|
||||||
|
['a1x1x2', m1, 8, 8, 0, 33, 0,0,90],
|
||||||
|
['a1x1x2', m4, 8, 12, 0, 33, 0,0,-90],
|
||||||
|
['a1x1x2', m1, 8, 16, 0, 33, 0,0,90],
|
||||||
|
['a1x1x2', m1, 9,-16, -8, 36, 0,0,180],
|
||||||
|
['a1x1x2', m1, 9,-12, -8, 36, 0,0,180],
|
||||||
|
['a1x1x2', m1, 9, -8, -8, 36, 0,0,180],
|
||||||
|
['a1x1x2', m1, 9,-16, 8, 36, 0,0,0],
|
||||||
|
['a1x1x2', m1, 9,-12, 8, 36, 0,0,0],
|
||||||
|
['a1x1x2', m1, 9, -8, 8, 36, 0,0,0],
|
||||||
|
['a1x1x2', m1, 9, -4, 4, 36, 0,0,-90],
|
||||||
|
['a1x1x2', m1, 9, -4, -4, 36, 0,0,-90],
|
||||||
|
['a1x1x2', m1, 9,-20, 4, 36, 0,0,90],
|
||||||
|
['a1x1x2', m1, 9,-20, -4, 36, 0,0,90],
|
||||||
|
['a1x2x2', m1, 9,-20, 0, 36, 0,0,90],
|
||||||
|
['b2x3x1', m1, 9,-16, -4, 36, 0,0,0],
|
||||||
|
['t2x3x1', m1, 9, -8, 0, 36, 0,0,0],
|
||||||
|
['a1x1x2', m5, 10,-20, 0, 39, 0,0,90],
|
||||||
|
['a1x1x2', m5, 10, -4, 0, 39, 0,0,-90],
|
||||||
|
['b1x3x1', m5, 10, -8, 0, 39, 0,0,90],
|
||||||
|
['r1x1x1', m1, 10,-16, -4, 39, 0,0,90],
|
||||||
|
['r1x1x1', m1, 10,-12, -4, 39, 0,0,90],
|
||||||
|
['r1x1x1', m1, 10, -8, -4, 39, 0,0,90],
|
||||||
|
['r1x1x1', m1, 10, -8, 4, 39, 0,0,90],
|
||||||
|
['r1x1x1', m1, 10,-12, 4, 39, 0,0,90],
|
||||||
|
['r1x1x1', m1, 10,-16, 4, 39, 0,0,90],
|
||||||
|
['r1x3x1', m5, 11, -8, 0, 42, 0,0,90],
|
||||||
|
['b1x2x1', m1, 12, -8,-12, 12, 0,0,0],
|
||||||
|
['b1x2x1', m1, 12, -8, 8, 12, 0,0,0],
|
||||||
|
['b1x2x1', m3, 12, 0, 8, 12, 0,0,90],
|
||||||
|
['b1x2x1', m3, 12, 0, -8, 12, 0,0,90],
|
||||||
|
['b2x2x1', m1, 12, 16, 8, 6, 0,0,0],
|
||||||
|
['b2x2x1', m1, 12, 16,-12, 6, 0,0,0],
|
||||||
|
['l2x2x1', m1, 12, 12,-16, 6, 0,0,0],
|
||||||
|
['l2x2x1', m1, 12, 12, 16, 6, 0,0,-90],
|
||||||
|
['b1x1x1', m1, 12, 12, 8, 6, 0,0,0],
|
||||||
|
['b1x1x1', m1, 12, 8, 12, 6, 0,0,0],
|
||||||
|
['b1x1x1', m1, 12, 12, -8, 6, 0,0,0],
|
||||||
|
['b1x1x1', m1, 12, 8,-12, 6, 0,0,0],
|
||||||
|
['b1x3x1', m3, 12, 40, 0, 6, 0,0,90],
|
||||||
|
['b2x3x1', m1, 13, 4,-16, 3, 0,0,0],
|
||||||
|
['b2x3x1', m1, 13, 4, 8, 3, 0,0,0],
|
||||||
|
['l2x2x1', m1, 13, 12, 12, 3, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 13, 12,-12, 3, 0,0,0],
|
||||||
|
['b1x2x1', m1, 14, 12,-16, 0, 0,0,90],
|
||||||
|
['b1x2x1', m1, 14, 12, 16, 0, 0,0,90],
|
||||||
|
['t2x3x1', m1, 14, 8, 12, 0, 0,0,-90],
|
||||||
|
['t2x3x1', m1, 14, 8,-12, 0, 0,0,90],
|
||||||
|
['a1x2x2', m2, 14, 4,-16, 0, 0,0,90],
|
||||||
|
['a1x2x2', m2, 14, 4, -8, 0, 0,0,90],
|
||||||
|
['a1x2x2', m2, 14, 4, 8, 0, 0,0,90],
|
||||||
|
['a1x2x2', m2, 14, 4, 16, 0, 0,0,90],
|
||||||
|
];
|
||||||
|
|
@@ -446,9 +446,9 @@ model_list=[
|
|||||||
['f1x2x1', m5, 29,-28, 12, 72, 0,0,90],
|
['f1x2x1', m5, 29,-28, 12, 72, 0,0,90],
|
||||||
['f1x2x1', m5, 29,-28, 16, 72, 0,0,90],
|
['f1x2x1', m5, 29,-28, 16, 72, 0,0,90],
|
||||||
['f1x2x1', m5, 29,-30, 12, 75, 0,0,0],
|
['f1x2x1', m5, 29,-30, 12, 75, 0,0,0],
|
||||||
['c1x1x1', m5, 29,-30, 12, 78, 0,0,0],
|
['c1x1x1', m5, 29,-30, 14, 78, 0,0,0],
|
||||||
['c1x1x1', m5, 29,-30, 12, 81, 0,0,0],
|
['c1x1x1', m5, 29,-30, 14, 81, 0,0,0],
|
||||||
['c1x1x1', m7, 29,-30, 12, 84, 0,0,0],
|
['c1x1x1', m7, 29,-30, 14, 84, 0,0,0],
|
||||||
['b2x3x1', m5, 30, -8, 0, 57, 0,0,0],
|
['b2x3x1', m5, 30, -8, 0, 57, 0,0,0],
|
||||||
['b2x3x1', m5, 30,-16, 0, 57, 0,0,0],
|
['b2x3x1', m5, 30,-16, 0, 57, 0,0,0],
|
||||||
['b2x3x1', m5, 30,-24, 0, 57, 0,0,0],
|
['b2x3x1', m5, 30,-24, 0, 57, 0,0,0],
|
||||||
|
139
programs/bcc32/games/blocks/models/model_clc_7267.bjs
Normal file
139
programs/bcc32/games/blocks/models/model_clc_7267.bjs
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
// block name, color, step, coord: x,y,z, rotation: x,y,z
|
||||||
|
|
||||||
|
const m1=0xffecca;
|
||||||
|
const m2=0xff0000;
|
||||||
|
const m3=0;
|
||||||
|
const m4=0xffffff;
|
||||||
|
|
||||||
|
model_list=[
|
||||||
|
['t2x3x1', m1, 0, 0, -8, 0, 0,0,90],
|
||||||
|
['t2x3x1', m2, 0, -8, -4, 0, 0,0,-90],
|
||||||
|
['t2x3x1', m2, 0, 8, -4, 0, 0,0,-90],
|
||||||
|
['b1x2x1', m2, 0,-20, 0, 0, 0,0,90],
|
||||||
|
['b1x2x1', m2, 0,-12, 0, 0, 0,0,0],
|
||||||
|
['b1x2x1', m2, 0, 12, 0, 0, 0,0,0],
|
||||||
|
['b1x2x1', m2, 0, 24, 0, 0, 0,0,90],
|
||||||
|
['b2x3x1', m2, 0, -8, 0, 0, 0,0,0],
|
||||||
|
['b2x3x1', m2, 0, 4, 0, 0, 0,0,0],
|
||||||
|
['b1x3x1', m2, 0, 0, 0, 0, 0,0,0],
|
||||||
|
['b2x3x1', m1, 1, 0,-12, 3, 0,0,90],
|
||||||
|
['b2x2x1', m1, 1, 4,-12, 3, 0,0,0],
|
||||||
|
['t2x3x1', m2, 1,-12, -4, 3, 0,0,-90],
|
||||||
|
['t2x3x1', m2, 1, 12, -4, 3, 0,0,-90],
|
||||||
|
['b2x3x1', m2, 1, 4, -4, 3, 0,0,90],
|
||||||
|
['b1x4x1', m2, 1, -8, 0, 3, 0,0,90],
|
||||||
|
['b1x4x1', m2, 1, 20, 0, 3, 0,0,90],
|
||||||
|
['b1x3x1', m2, 1, -8, 4, 3, 0,0,90],
|
||||||
|
['b1x3x1', m2, 1, 4, 4, 3, 0,0,90],
|
||||||
|
['b1x3x1', m2, 1, 16, 4, 3, 0,0,90],
|
||||||
|
['l2x2x1', m2, 1, -8, 8, 3, 0,0,90],
|
||||||
|
['l2x2x1', m2, 1, 8, 8, 3, 0,0,0],
|
||||||
|
['b2x3x1', m2, 1, 4, 8, 3, 0,0,90],
|
||||||
|
['b2x3x1', m1, 2, 4,-12, 6, 0,0,90],
|
||||||
|
['b2x3x1', m2, 2, -8, -4, 6, 0,0,0],
|
||||||
|
['b2x3x1', m2, 2, 4, -4, 6, 0,0,0],
|
||||||
|
['b2x3x1', m2, 2, -4, 8, 6, 0,0,90],
|
||||||
|
['b2x4x1', m2, 2, 12, 8, 6, 0,0,90],
|
||||||
|
['b1x4x1', m2, 2,-16, -4, 6, 0,0,0],
|
||||||
|
['b1x4x1', m2, 2, 16, -4, 6, 0,0,0],
|
||||||
|
['b1x3x1', m2, 2, -8, -8, 6, 0,0,90],
|
||||||
|
['b1x3x1', m2, 2, 16, -8, 6, 0,0,90],
|
||||||
|
['b1x2x1', m2, 2, -8,-12, 6, 0,0,90],
|
||||||
|
['b1x2x1', m2, 2, 12,-12, 6, 0,0,90],
|
||||||
|
['b1x1x1', m2, 3,-28, 4, 3, 0,0,0],
|
||||||
|
['b1x1x1', m2, 3, 28, 4, 3, 0,0,0],
|
||||||
|
['t2x3x1', m2, 3,-24, 4, 6, 0,0,-90],
|
||||||
|
['t2x3x1', m2, 3, 24, 4, 6, 0,0,-90],
|
||||||
|
['b1x3x1', m2, 3,-16, 0, 9, 0,0,90],
|
||||||
|
['b1x3x1', m2, 3, 24, 0, 9, 0,0,90],
|
||||||
|
['l2x2x1', m2, 3,-16, -4, 9, 0,0,-90],
|
||||||
|
['l2x2x1', m2, 3, 16, -4, 9, 0,0,-180],
|
||||||
|
['b2x3x1', m2, 3, -4,-12, 9, 0,0,90],
|
||||||
|
['b2x4x1', m2, 3, 12,-12, 9, 0,0,90],
|
||||||
|
['b2x2x1', m2, 3,-16, 4, 9, 0,0,0],
|
||||||
|
['b2x2x1', m2, 3, 12, 4, 9, 0,0,0],
|
||||||
|
['b1x4x1', m2, 3, 0, 12, 9, 0,0,90],
|
||||||
|
['b1x3x1', m2, 3, 12, 12, 9, 0,0,90],
|
||||||
|
['b1x4x1', m2, 4, 28, 4, 12, 0,0,90],
|
||||||
|
['b1x4x1', m2, 4,-16, 4, 12, 0,0,90],
|
||||||
|
['l2x2x1', m2, 4,-12, 8, 12, 0,0,90],
|
||||||
|
['l2x2x1', m2, 4, 12, 8, 12, 0,0,0],
|
||||||
|
['b2x2x1', m2, 4, -8, 8, 12, 0,0,0],
|
||||||
|
['b2x3x1', m2, 4, 8, 8, 12, 0,0,90],
|
||||||
|
['b2x2x1', m2, 4,-16, -4, 12, 0,0,0],
|
||||||
|
['b2x2x1', m2, 4, 12, -4, 12, 0,0,0],
|
||||||
|
['b2x3x1', m2, 4, 4,-12, 12, 0,0,90],
|
||||||
|
['a1x2x2', m2, 4,-12, -8, 12, 0,0,90],
|
||||||
|
['a1x2x2', m2, 4, -8,-12, 12, 0,0,90],
|
||||||
|
['a1x2x2', m2, 4, 8,-12, 12, 0,0,-90],
|
||||||
|
['a1x2x2', m2, 4, 12, -8, 12, 0,0,-90],
|
||||||
|
['b1x1x1', m2, 5,-28, 4, 15, 0,0,0],
|
||||||
|
['b1x1x1', m2, 5, 28, 4, 15, 0,0,0],
|
||||||
|
['b1x2x1', m2, 5,-16, 0, 15, 0,0,0],
|
||||||
|
['b1x2x1', m2, 5, 16, 0, 15, 0,0,0],
|
||||||
|
['b1x3x1', m2, 5,-12, 0, 15, 0,0,0],
|
||||||
|
['b1x3x1', m2, 5, 12, 0, 15, 0,0,0],
|
||||||
|
['b2x3x1', m2, 5, 0, 8, 15, 0,0,90],
|
||||||
|
['b2x2x1', m2, 5, 4, 8, 15, 0,0,0],
|
||||||
|
['b2x2x1', m2, 5, 4, -8, 15, 0,0,0],
|
||||||
|
['b2x3x1', m2, 5, 0, -8, 15, 0,0,90],
|
||||||
|
['a1x2x2', m2, 5,-12, -4, 15, 0,0,90],
|
||||||
|
['a1x2x2', m2, 5, 12, -4, 15, 0,0,-90],
|
||||||
|
['r1x3x1', m3, 5, 4,-12, 15, 0,0,90],
|
||||||
|
['r1x1x1', m2, 5, -8,-12, 15, 0,0,0],
|
||||||
|
['r1x1x1', m2, 5, 8,-12, 15, 0,0,0],
|
||||||
|
['r1x1x1', m2, 5, 12, -8, 15, 0,0,0],
|
||||||
|
['r1x1x1', m2, 5,-12, -8, 15, 0,0,0],
|
||||||
|
['u1x2x1', m2, 6,-20, 0, 15, 0,0,90],
|
||||||
|
['t2x3x1', m2, 6,-20, 0, 18, 0,0,0],
|
||||||
|
['u1x2x2', m2, 6,-24, 0, 18, 0,0,90],
|
||||||
|
['u1x2x1', m2, 6, 20, 0, 15, 0,0,-90],
|
||||||
|
['t2x3x1', m2, 6, 20, 0, 18, 0,0,180],
|
||||||
|
['u1x2x2', m2, 6, 24, 0, 18, 0,0,-90],
|
||||||
|
['b1x2x1', m2, 6,-12, 0, 18, 0,0,0],
|
||||||
|
['b1x2x1', m2, 6, 12, 0, 18, 0,0,0],
|
||||||
|
['b2x4x1', m2, 6, -8, -4, 18, 0,0,0],
|
||||||
|
['b2x4x1', m2, 6, 0, -4, 18, 0,0,0],
|
||||||
|
['b1x4x1', m2, 6, 8, -4, 18, 0,0,0],
|
||||||
|
['r1x1x1', m2, 6,-12, -4, 18, 0,0,0],
|
||||||
|
['r1x1x1', m2, 6, 12, -4, 18, 0,0,0],
|
||||||
|
['r1x1x1', m3, 6, -8, -8, 18, 0,0,0],
|
||||||
|
['r1x1x1', m3, 6, 8, -8, 18, 0,0,0],
|
||||||
|
['b1x3x1', m2, 6, 4, -8, 18, 0,0,90],
|
||||||
|
['b1x3x1', m2, 7,-16, 4, 21, 0,0,90],
|
||||||
|
['b1x3x1', m2, 7, 24, 4, 21, 0,0,90],
|
||||||
|
['b2x3x1', m2, 7, 24, -4, 21, 0,0,90],
|
||||||
|
['b2x3x1', m2, 7,-16, -4, 21, 0,0,90],
|
||||||
|
['b1x2x1', m2, 7, -8, -4, 21, 0,0,0],
|
||||||
|
['b1x2x1', m2, 7, 8, -4, 21, 0,0,0],
|
||||||
|
['a1x1x2', m2, 8,-24, -4, 24, 0,0,90],
|
||||||
|
['a1x1x2', m2, 8, 24, -4, 24, 0,0,-90],
|
||||||
|
['l2x2x1', m2, 8, 24, 0, 24, 0,0,0],
|
||||||
|
['l2x2x1', m2, 8,-24, 0, 24, 0,0,90],
|
||||||
|
['b1x3x1', m2, 8,-16, -4, 24, 0,0,0],
|
||||||
|
['b1x3x1', m2, 8, 16, -4, 24, 0,0,0],
|
||||||
|
['b1x3x1', m2, 8, -4, 0, 24, 0,0,90],
|
||||||
|
['b1x3x1', m2, 8, 12, 0, 24, 0,0,90],
|
||||||
|
['b1x3x1', m4, 8, 12, -4, 24, 0,0,90],
|
||||||
|
['b1x3x1', m4, 8, -4, -4, 24, 0,0,90],
|
||||||
|
['a1x1x2', m2, 9,-28, 0, 27, 0,0,90],
|
||||||
|
['a1x1x2', m2, 9, 28, 0, 27, 0,0,-90],
|
||||||
|
['l2x2x1', m2, 9, 24, 4, 27, 0,0,180],
|
||||||
|
['l2x2x1', m2, 9, 20, 0, 27, 0,0,180],
|
||||||
|
['l2x2x1', m2, 9,-24, 4, 27, 0,0,-90],
|
||||||
|
['l2x2x1', m2, 9,-20, 0, 27, 0,0,-90],
|
||||||
|
['b1x3x1', m2, 9, -4, 0, 27, 0,0,90],
|
||||||
|
['b1x3x1', m2, 9, 12, 0, 27, 0,0,90],
|
||||||
|
['b1x1x1', m4, 9,-12, -4, 27, 0,0,90],
|
||||||
|
['b1x1x1', m4, 9, -4, -4, 27, 0,0,90],
|
||||||
|
['b1x1x1', m4, 9, 4, -4, 27, 0,0,90],
|
||||||
|
['b1x1x1', m4, 9, 12, -4, 27, 0,0,90],
|
||||||
|
['c1x1x1', m3, 9, -8, -4, 27, 0,0,90],
|
||||||
|
['c1x1x1', m3, 9, 8, -4, 27, 0,0,90],
|
||||||
|
['b1x2x1', m2, 10,-20, 0, 30, 0,0,90],
|
||||||
|
['b1x2x1', m2, 10, 24, 0, 30, 0,0,90],
|
||||||
|
['r1x3x1', m2, 10, -4, 0, 30, 0,0,90],
|
||||||
|
['r1x3x1', m2, 10, 12, 0, 30, 0,0,90],
|
||||||
|
['r1x3x1', m4, 10, 12, -4, 30, 0,0,90],
|
||||||
|
['r1x3x1', m4, 10, -4, -4, 30, 0,0,90],
|
||||||
|
];
|
Reference in New Issue
Block a user