1 |
REM > CreateJCode:Create |
2 |
|
3 |
DEF PROCCreate(Path$) |
4 |
LOCAL Name$, Sprt$ |
5 |
LOCAL Temp%, Spr1%, Spr2% |
6 |
|
7 |
REMLOCAL ERROR |
8 |
REMON ERROR LOCAL RESTORE ERROR: PROCCreate_Error |
9 |
|
10 |
Name$ = FNWimp_GetLeaf(Path$) |
11 |
|
12 |
SYS"OS_CLI", "CDir " + Path$ |
13 |
SYS"OS_CLI", "Copy " + Task_Path$ + "Base " + Path$ + ".!" + Name$ + " A~C~DFL~N~P~QR~S~T~V" |
14 |
SYS"OS_CLI", "CDir " + Path$ + "." + Name$ |
15 |
SYS"OS_CLI", "CDir " + Path$ + "." + Name$ + ".Basic" |
16 |
|
17 |
PROCWimp_LoadFile(Task_Path$ + "Files.!Sprites", 1, "Sprites") |
18 |
PROCWimp_LoadFile(Task_Path$ + "Files.!Sprites22", 1, "Sprites22") |
19 |
Spr1% = FNHeap_Find(1, "Sprites") |
20 |
Spr2% = FNHeap_Find(1, "Sprites22") |
21 |
Sprt$ = "!" + FNString_Lower(LEFT$(Name$, 11)) |
22 |
$(Spr1% + 4 + &10) = Sprt$ |
23 |
$(Spr2% + 4 + &10) = Sprt$ |
24 |
Spr1%?(4 + &10 + LENSprt$) = 0 |
25 |
Spr2%?(4 + &10 + LENSprt$) = 0 |
26 |
SYS"OS_File", 10, Path$ + ".!" + Name$ + ".!Sprites", &FF9,, Spr1% + 4, Spr1% + !Spr1% + 4 |
27 |
SYS"OS_File", 10, Path$ + ".!" + Name$ + ".!Sprites22", &FF9,, Spr2% + 4, Spr2% + !Spr2% + 4 |
28 |
PROCHeap_Lose(1, "Sprites") |
29 |
PROCHeap_Lose(1, "Sprites22") |
30 |
|
31 |
Type$ = "Obey" |
32 |
PROCCopy(Task_Path$ + "Files.!Run", Path$ + ".!" + Name$ + ".!Run") |
33 |
PROCCopy(Task_Path$ + "Files.!Run2", Path$ + "." + Name$ + ".!Run") |
34 |
PROCCopy(Task_Path$ + "Files.LinkCrunch", Path$ + "." + Name$ +".LinkCrunch") |
35 |
|
36 |
Type$ = "Text" |
37 |
PROCCopy(Task_Path$+"Files.Menus", Path$ + ".!" +Name$+".Resources.UK.Menus") |
38 |
|
39 |
Type$ = "BASIC" |
40 |
PROCBasic(Task_Path$ + "Files.!Main", Path$ + "." + Name$ + ".!Main") |
41 |
PROCBasic(Task_Path$+"Files.Basic.Click",Path$ + "." + Name$ +".Basic.Click") |
42 |
PROCBasic(Task_Path$+"Files.Basic.Init", Path$ + "." + Name$ + ".Basic.Init") |
43 |
PROCBasic(Task_Path$+"Files.Basic.Menu", Path$ + "." + Name$ + ".Basic.Menu") |
44 |
PROCBasic(Task_Path$+"Files.Basic.Quit", Path$ + "." + Name$ + ".Basic.Quit") |
45 |
|
46 |
ENDPROC |
47 |
|
48 |
REM ������������������������������������������������������������������������� |
49 |
|
50 |
DEF PROCCreate_Error |
51 |
PROCHeap_Lose(1, "*") |
52 |
Erro_ERL% = ERL |
53 |
Erro_REPORT$ = REPORT$ |
54 |
Erro_ERR% = Erro_Warn% |
55 |
ERROR Erro_Warn%, REPORT$ |
56 |
ENDPROC |
57 |
|
58 |
REM ������������������������������������������������������������������������� |
59 |
|
60 |
DEF PROCCopy(Fil1$, Fil2$) |
61 |
LOCAL Fil1%, Fil2%, Byte%, Byt1%, Byt2%, Loop% |
62 |
|
63 |
Fil1% = OPENIN(Fil1$) |
64 |
Fil2% = OPENOUT(Fil2$) |
65 |
|
66 |
REMLOCAL ERROR |
67 |
REMON ERROR LOCAL RESTORE ERROR: PROCCopy_Error |
68 |
|
69 |
WHILE NOT EOF#Fil1% |
70 |
Byte% = BGET#Fil1% |
71 |
IF Byte% = ASC"{" THEN |
72 |
Byt1% = BGET#Fil1% |
73 |
Byt2% = BGET#Fil1% |
74 |
IF (Byt1% = ASC"!") AND (Byt2% = ASC"}") THEN |
75 |
FOR Loop% = 1 TO LENName$ |
76 |
BPUT#Fil2%, ASC(MID$(Name$, Loop%, 1)) |
77 |
NEXT |
78 |
ELSE |
79 |
BPUT#Fil2%, Byte% |
80 |
BPUT#Fil2%, Byt1% |
81 |
BPUT#Fil2%, Byt2% |
82 |
ENDIF |
83 |
ELSE |
84 |
BPUT#Fil2%, Byte% |
85 |
ENDIF |
86 |
ENDWHILE |
87 |
|
88 |
REMRESTORE ERROR |
89 |
|
90 |
CLOSE#Fil1% |
91 |
CLOSE#Fil2% |
92 |
SYS"OS_CLI", "SetType " + Fil2$ + " " + Type$ |
93 |
ENDPROC |
94 |
|
95 |
REM ������������������������������������������������������������������������� |
96 |
|
97 |
DEF PROCCopy_Error |
98 |
CLOSE#Fil1% |
99 |
CLOSE#Fil2% |
100 |
Erro_ERL% = ERL |
101 |
Erro_REPORT$ = REPORT$ |
102 |
Erro_ERR% = Erro_Warn% |
103 |
ERROR Erro_Warn%, REPORT$ |
104 |
ENDPROC |
105 |
|
106 |
REM ������������������������������������������������������������������������� |
107 |
|
108 |
DEF PROCBasic(Fil1$, Fil2$) |
109 |
LOCAL Fil1%, Fil2%, Byte%, Byt1%, Byt2% |
110 |
|
111 |
Fil1% = OPENIN(Fil1$) |
112 |
Fil2% = OPENOUT(Fil2$) |
113 |
|
114 |
REMLOCAL ERROR |
115 |
REMON ERROR LOCAL RESTORE ERROR: PROCCopy_Error |
116 |
|
117 |
Byte% = BGET#Fil1% :REM &D |
118 |
BPUT#Fil2%, Byte% |
119 |
Byte% = BGET#Fil1% :REM line 1 |
120 |
WHILE Byte% <> &FF |
121 |
BPUT#Fil2%, Byte% |
122 |
Byte% = BGET#Fil1% :REM line 2 |
123 |
BPUT#Fil2%, Byte% |
124 |
Byte% = BGET#Fil1% :REM length |
125 |
Line$ = "" |
126 |
Byte% = BGET#Fil1% |
127 |
WHILE Byte% <> &D |
128 |
IF Byte% = ASC"{" THEN |
129 |
Byt1% = BGET#Fil1% |
130 |
Byt2% = BGET#Fil1% |
131 |
IF (Byt1% = ASC"!") AND (Byt2% = ASC"}") THEN |
132 |
Line$ += Name$ |
133 |
ENDIF |
134 |
ELSE |
135 |
Line$ += CHR$(Byte%) |
136 |
ENDIF |
137 |
Byte% = BGET#Fil1% |
138 |
ENDWHILE |
139 |
BPUT#Fil2%, LENLine$ + 4 |
140 |
BPUT#Fil2%, Line$; |
141 |
BPUT#Fil2%, Byte% |
142 |
Byte% = BGET#Fil1% :REM line 1 |
143 |
ENDWHILE |
144 |
BPUT#Fil2%, Byte% |
145 |
|
146 |
REMRESTORE ERROR |
147 |
|
148 |
CLOSE#Fil1% |
149 |
CLOSE#Fil2% |
150 |
SYS"OS_CLI", "SetType " + Fil2$ + " " + Type$ |
151 |
ENDPROC |