Справа от комментариев адреса кода в каких запрашивается значение.
Code
ROM:0006B33E dc.w 6 ; unkn when build by mcv $10C24 $10C40
ROM:0006B340 dc.w 0
ROM:0006B342 dc.w 0
ROM:0006B344 WINDTRAP: dc.w $FA ; DATA XREF: ROM:0006B978o
ROM:0006B346 dc.l asc_BC12 ; "Windtrap"
ROM:0006B34A dc.w $FB ; not used
ROM:0006B34C dc.l asc_BC1B ; "windtrap.wsa"
ROM:0006B350 dc.w $80 ; unkn when build/selected $E650 $FACA $F1AC $29652
ROM:0006B352 dc.w $40 ; unkn when explode $D540
ROM:0006B354 dc.w 400 ; armor = 400 $27784 $E632 $E638 $104F6 $10618 $10628
ROM:0006B354 ; $EB30 $EB7E $EBA0 $10500 $2950A $C076 $C0D6 $C50A
ROM:0006B356 dc.w 2 ; view sight = 2 $108C0 $D058
ROM:0006B358 dc.w $49 ; icon type id $2967A
ROM:0006B35A dc.w 300 ; cost = 300 $27778 $C1F6
ROM:0006B35C dc.w $C ; build time $FE2E $296FE $C1FA
ROM:0006B35E dc.w 1 ; level from allowed $FEE0
ROM:0006B360 dc.l 0 ; required build for allowed $FEE4
ROM:0006B364 dc.b 6 ; menu priority $28E74
ROM:0006B365 dc.b 0 ; unkn menu allowed? $FF74
ROM:0006B366 dc.w 0 ; unkn/not used
ROM:0006B368 dc.w 0 ; unkn/not used
ROM:0006B36A dc.w 0 ; unkn/not used
ROM:0006B36C dc.w 0 ; unkn/not used
ROM:0006B36E dc.w 0 ; unkn/not used
ROM:0006B370 dc.w $A ; unkn/not used
ROM:0006B372 dc.w 0 ; unkn time-based $64 r-turret $4B turret $106F2
ROM:0006B374 dc.w 300 ; unkn (cost2?) $106F6
ROM:0006B376 dc.b $3F ; 3D=hark+ord, 3E=atr+ord, 3F=all, REQ for barracks $FF6C
ROM:0006B377 dc.b 0 ; unkn/not used
ROM:0006B378 dc.l 0 ; ref=$10000/repair=$3FF80 $5606
ROM:0006B37C dc.w 0 ; add to spice max $104E4
ROM:0006B37E dc.w -100 ; energy drain -100 (+100 give) $104EC $10546 $10532 $2777C
ROM:0006B380 dc.w 3 ; size = 2x2 $27788 $DB5A $285FA $F11C $F138 $F31E
ROM:0006B382 dc.w $13 ; graphics ID $ED68
ROM:0006B384 dc.l word_6AF90 ; unkn not used +
ROM:0006B388 dc.l word_6AF90
ROM:0006B38C dc.l word_6AF90
ROM:0006B390 dc.w $FFFF
ROM:0006B392 dc.w $FFFF
ROM:0006B394 dc.w $FFFF
ROM:0006B396 dc.w $FFFF
ROM:0006B398 dc.w $FFFF
ROM:0006B39A dc.w $FFFF
ROM:0006B39C dc.w $FFFF
ROM:0006B39E dc.w $FFFF
ROM:0006B3A0 dc.w $FFFF
ROM:0006B3A2 dc.w $FFFF
ROM:0006B3A4 dc.w 0
ROM:0006B3A6 dc.w 0
ROM:0006B3A8 dc.w 0
ROM:0006B3AA BARRACKS: dc.w $FC ; DATA XREF: ROM:0006B97C
Адреса на здания находятся тут:
Code
ROM:0006B954 builds_types: dc.l SLAB ; DATA XREF: sub_556E+1Ao
ROM:0006B954 ; sub_A938+2C2o ...
ROM:0006B958 dc.l SLABx4
ROM:0006B95C dc.l PALACE
ROM:0006B960 dc.l LIGHT_FACTORY
ROM:0006B964 Heavy_factory: dc.l HEAVY_FACTORY ; DATA XREF: Buildings_work+25Cr
ROM:0006B968 dc.l HI_TECH
ROM:0006B96C dc.l IX
ROM:0006B970 Wor: dc.l WOR ; DATA XREF: Buildings_work+298r
ROM:0006B974 Const_Yard: dc.l CONST_YARD ; DATA XREF: sub_45F8E+AEr
ROM:0006B978 dc.l WINDTRAP
ROM:0006B97C dc.l BARRACKS
ROM:0006B980 dc.l STARPORT
ROM:0006B984 Refinery: dc.l REFINERY ; DATA XREF: sub_235E2+18r
ROM:0006B988 dc.l REPAIR
ROM:0006B98C Wall: dc.l WALL ; DATA XREF: sub_A938+320r
ROM:0006B98C ; sub_A938+342r
ROM:0006B990 dc.l TURRET
ROM:0006B994 R_turret: dc.l R_TURRET ; DATA XREF: sub_10BA6+BAr
ROM:0006B998 Spice_silo: dc.l SPICE_SILO ; DATA XREF: sub_235E2+40r
ROM:0006B99C dc.l OUTPOST
Тут на юниты:
Code
ROM:0006C5BC unit_types: dc.l CARRYALL ; DATA XREF: sub_556E+2Co
ROM:0006C5BC ; sub_5628+18o ...
ROM:0006C5C0 dc.l THOPTER
ROM:0006C5C4 dc.l INFANTRY
ROM:0006C5C8 Troopers: dc.l TROOPERS ; DATA XREF: sub_4378C+120r
ROM:0006C5CC Soldier: dc.l SOLDIER ; DATA XREF: sub_D4CC+4Eo
ROM:0006C5D0 Trooper: dc.l TROOPER ; DATA XREF: sub_4378C+140r
ROM:0006C5D4 dc.l SABOTEUR
ROM:0006C5D8 Launcher: dc.l LAUNCHER ; DATA XREF: sub_CDD4+1AAr
ROM:0006C5DC dc.l DEVIATOR
ROM:0006C5E0 Tank: dc.l TANK ; DATA XREF: sub_CDD4+1BAr
ROM:0006C5E4 dc.l HEAVY_TANK
ROM:0006C5E8 dc.l DEVASTATOR
ROM:0006C5EC dc.l SONIC_TANK
ROM:0006C5F0 dc.l TRIKE
ROM:0006C5F4 dc.l RAIDER_TRIKE
ROM:0006C5F8 dc.l QUAD
ROM:0006C5FC dc.l HARVESTER
ROM:0006C600 dc.l MCV
ROM:0006C604 dc.l DEATH_HAND
ROM:0006C608 dc.l ROCKET
ROM:0006C60C dc.l AROCKET
ROM:0006C610 dc.l GROCKET
ROM:0006C614 dc.l MINIROCKET
ROM:0006C618 dc.l BULLET
ROM:0006C61C dc.l SONIC_BLAST
ROM:0006C620 dc.l SANDWORM
ROM:0006C624 dc.l FRIGATE
Супер-оружие (фремены, саботер, ракета) - 2 вызова (от игрока и AI)
Code
ROM:00022CC8 SUPERWEAPON: ; CODE XREF: Buildings_work+182p
ROM:00022CC8 ; sub_27B50+350p
ROM:00022CC8 movem.l d3-d6/a2-a4,-(sp)
.......
....
Code
ROM:00022EA2 lea (fremens_quanit).l,a1 ; кол-во фременов
ROM:00022EA8 move.b (a1,d3.w),d6
ROM:00022EAC ext.w d6
ROM:00022EAE moveq #0,d5
ROM:00022EB0 lea (fremens_utype).l,a4 ; тип юнита (труперы)
ROM:00022EB6 bra.w loc_22FFC
ROM:00022EBA loc_22EBA: ; CODE XREF: SUPERWEAPON+336j
ROM:00022EBA addq.w #1,(word_FFC148).l
ROM:00022EC0 jsr (sub_439A).l ; angle position randomisations
ROM:00022EC6 move.w d0,(sp)
ROM:00022EC8 move.w #1,-(sp) ; accurate positions
ROM:00022ECC move.w #$1E,-(sp) ; range between fremens
ROM:00022ED0 move.l d4,-(sp)
ROM:00022ED2 jsr sub_1168C
ROM:00022ED8 addq.l #8,sp
ROM:00022EDA move.l d0,-(sp)
ROM:00022EDC moveq #3,d0 ; fremen house
ROM:00022EDE move.w d0,-(sp)
ROM:00022EE0 move.w d0,-(sp)
ROM:00022EE2 move.w #0,-(sp)
ROM:00022EE6 jsr (sub_4382).l ; fremen signle trooper - если отключить
одиночные фремены появлятся не будут.
ROM:00022EEC addq.l #4,sp
ROM:00022EEE add.w d0,d0
ROM:00022EF0 move.w (a4,d0.w),-(sp)
ROM:00022EF4 move.w #$FFFF,-(sp)
ROM:00022EF8 jsr UNIT_CREATING
.......
обработчик:
ROM:00023724 house_func_0_1
думаю если его поменять мб на ff, 0 и 1 можно
Code
ROM:00023754 houses_inf: ; DATA XREF: house_func_0_1+12r
ROM:00023754 ; house_func_0_1+16r
ROM:00023754 dc.b $FF ; hark
ROM:00023755 dc.b 0 ; atr
ROM:00023756 dc.b $FF ; ord
ROM:00023757 dc.b 1 ; frem
ROM:00023758 dc.b $FF ; sard
ROM:00023759 dc.b $FF
.......
Code
ROM:00095CD8 fremens_utype: dc.w 3 ; DATA XREF: SUPERWEAPON+1E8o
ROM:00095CD8 ; ROM:0008F1E8o ...
ROM:00095CDA dc.w 5
ROM:00095CDC dc.w 3
ROM:00095CDE dc.w 3
ROM:00095CE0 fremens_quanit: dc.b 5 ; DATA XREF: SUPERWEAPON+1DAo
ROM:00095CE1 dc.b 5
ROM:00095CE2 dc.b 4
ROM:00095CE3 dc.b 4
ROM:00095CE4 dc.b 3
ROM:00095CE5 dc.b 2
ROM:00095CE6 dc.b 1
ROM:00095CE7 dc.b 0
ROM:00095CE8 dc.b 0
ROM:00095CE9 dc.b 0
ROM:00095CEA dc.b 0
ROM:00095CEB dc.b 0
ROM:00095CEC dc.b 0
ROM:00095CED dc.b 0
ROM:00095CEE dc.b 0
ROM:00095CEF dc.b 0
За два выстрела отвечает один из битовых флагов (0 или 1). Для его установки надо взять число (2байта) с адреса $38 и на калькулятор(вид->инженерный, точка на hex) провести операцию Or с числом $400.
Пример: у tank там $8064, $8064 Or $400 получится $8464. (это не одно и тоже что сложение, но в данном случае совпадает просто)
Три выстрела игрой не предусмотрено, и стандартными методами сделать нельзя.
формат юнитов:
Код:
Code
10 = shield
14 = icon
16 = price
34 = flag turn of other clones
3A - fog visibility range
3e = soldier no comicze flag
42 = speed
46 = sprite
50 = attack range
54 = power
58 = weapon
Нашол адрес, в который записываются ID строений, юнитов и т.п. для показа
в меню строений, таких как Const.Yard, Vehicle и т.д.
BF91-BF9F
C63C - адрес, куда генерится список доступных строений
Узнал ещё 2 вещи.
1. TEAM заставляет строения поступать так как в них описано. например строить танки в заводе или туперы.
2. если держать C во время взрыва, то тряски не будет.