mirror of
https://github.com/open-goal/jak-project
synced 2026-07-07 14:13:45 -04:00
[jak2] workaround for cutscene playing (#2131)
This commit is contained in:
@@ -26,6 +26,7 @@ class Wrapper {
|
||||
std::vector<std::string> examples{};
|
||||
std::vector<std::pair<std::string, replxx::Replxx::Color>> regex_colors{};
|
||||
|
||||
Wrapper(GameVersion version) : repl_config(version) {}
|
||||
Wrapper(const std::string& _username, const Config& config, const StartupFile& startup)
|
||||
: username(_username), repl_config(config), startup_file(startup) {}
|
||||
replxx::Replxx& get_repl() { return repl; }
|
||||
|
||||
@@ -48,7 +48,7 @@ std::string trim_newline_indents(const std::string& s) {
|
||||
|
||||
std::string join(const std::vector<std::string>& strs, const std::string& join_with) {
|
||||
std::string out;
|
||||
for (int i = 0; i < strs.size(); i++) {
|
||||
for (size_t i = 0; i < strs.size(); i++) {
|
||||
out += strs.at(i);
|
||||
if (i < strs.size() - 1) {
|
||||
out += join_with;
|
||||
|
||||
@@ -16172,7 +16172,7 @@
|
||||
|
||||
(deftype collide-prim-core (structure)
|
||||
((world-sphere vector :inline :offset-assert 0)
|
||||
(collide-as collide-spec :offset-assert 16) ;; guessed by decompiler
|
||||
(collide-as collide-spec :offset 16) ;; guessed by decompiler
|
||||
(collide-with collide-spec :offset-assert 20)
|
||||
(action collide-action :offset-assert 24) ;; guessed by decompiler
|
||||
(prim-type prim-type :offset-assert 28)
|
||||
@@ -16513,7 +16513,7 @@
|
||||
(try-snap-to-surface (_type_ vector float float float) symbol 64)
|
||||
(fill-and-try-snap-to-surface (_type_ vector float float float collide-query) symbol 65)
|
||||
(step-collison! (_type_ vector vector float int) float 66)
|
||||
(collide-shape-moving-method-67 () none 67)
|
||||
(collide-with-all-collide-cache-prims (_type_ matrix collide-query) none 67)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -24479,7 +24479,7 @@
|
||||
;; (define-extern hflip-disp function)
|
||||
(define-extern blit-displays (function none))
|
||||
(define-extern draw-color-bars (function none))
|
||||
;; (define-extern draw-raw-image function)
|
||||
(define-extern draw-raw-image (function bucket-id art-group int int level int none))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; font-data ;;
|
||||
@@ -32312,8 +32312,15 @@
|
||||
;; idle-control ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(defenum ic-cmd
|
||||
:type uint8
|
||||
(restart 0)
|
||||
(play 1)
|
||||
(push 2)
|
||||
)
|
||||
|
||||
(deftype idle-control-frame (uint32)
|
||||
((command uint8 :offset 0)
|
||||
((command ic-cmd :offset 0)
|
||||
(anim uint8 :offset 8)
|
||||
(param0 uint8 :offset 16)
|
||||
(param1 uint8 :offset 24)
|
||||
@@ -33725,6 +33732,32 @@
|
||||
:flag-assert #x900000008
|
||||
)
|
||||
|
||||
|
||||
(deftype rb-work (structure)
|
||||
((cquery collide-query :inline)
|
||||
(mat-1 matrix :inline :offset 544)
|
||||
(vec-2 vector :inline :offset 608)
|
||||
(vec-5 vector :inline :offset 624)
|
||||
(vec-3 vector :inline :offset 640)
|
||||
(float-4 float :offset 656)
|
||||
(pat-id pat-surface :offset 660)
|
||||
(rbody rigid-body :offset 664)
|
||||
(prim-id int32 :offset 668)
|
||||
(vec-1 vector :inline :offset 672)
|
||||
(quat-1 quaternion :inline)
|
||||
(vec-8 vector :inline :offset 704)
|
||||
(vec-4 vector :inline :offset 720)
|
||||
(vec-6 vector :inline)
|
||||
(vec-7 vector :inline)
|
||||
(vec-9 vector :inline)
|
||||
(float-2 float :offset 784)
|
||||
(float-3 float)
|
||||
(dt float :offset 792)
|
||||
(float-1 float)
|
||||
(cnt int8 :offset 800)
|
||||
)
|
||||
)
|
||||
|
||||
(define-extern *rigid-body-work* rigid-body-work)
|
||||
(define-extern matrix-3x3-triple-transpose-product (function matrix matrix matrix matrix))
|
||||
(define-extern damping-time-adjust (function float float float))
|
||||
@@ -44268,35 +44301,42 @@
|
||||
;; title-obs ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
#|
|
||||
(deftype title-control (process)
|
||||
()
|
||||
((selected int32 :offset-assert 128)
|
||||
(sprites hud-sprite 2 :inline :offset-assert 144)
|
||||
(sprite-pos vector :inline :offset-assert 272)
|
||||
(sprite-draw uint32 :offset-assert 288)
|
||||
(buffer external-art-buffer 2 :offset-assert 292)
|
||||
(want int32 2 :offset-assert 300)
|
||||
(want-name basic 2 :offset-assert 308)
|
||||
(have int32 2 :offset-assert 316)
|
||||
(draw int32 :offset-assert 324)
|
||||
(draw-name basic :offset-assert 328)
|
||||
(active symbol :offset-assert 332)
|
||||
(spark-time time-frame :offset-assert 336)
|
||||
(gui-id uint32 :offset-assert 344)
|
||||
)
|
||||
:method-count-assert 18
|
||||
:size-assert #x15c
|
||||
:flag-assert #x1200e0015c
|
||||
;; Failed to read fields.
|
||||
(:methods
|
||||
(title-control-method-9 () none 9)
|
||||
(title-control-method-10 () none 10)
|
||||
(title-control-method-11 () none 11)
|
||||
(title-control-method-12 () none 12)
|
||||
(title-control-method-13 () none 13)
|
||||
(startup () _type_ :state 14)
|
||||
(wait () _type_ :state 15)
|
||||
(idle () _type_ :state 16)
|
||||
(scrap-book () _type_ :state 17)
|
||||
(scrap-book (int) _type_ :state 17)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
;; (define-extern title-plug-lightning function)
|
||||
;; (define-extern title-screen-change function)
|
||||
;; (define-extern wait-for-press function)
|
||||
;; (define-extern title-menu function)
|
||||
;; (define-extern title-fade-out function)
|
||||
;; (define-extern title-progress function)
|
||||
;; (define-extern title-control-init function)
|
||||
(define-extern title-plug-lightning (function process-drawable vector cspace none))
|
||||
(define-extern title-screen-change (function symbol int symbol int symbol symbol none :behavior title-control))
|
||||
(define-extern wait-for-press (function time-frame time-frame symbol symbol))
|
||||
(define-extern title-menu (function object :behavior title-control))
|
||||
(define-extern title-fade-out (function float none))
|
||||
(define-extern title-progress (function symbol none))
|
||||
(define-extern title-control-init (function none :behavior title-control))
|
||||
(define-extern target-title (state symbol target))
|
||||
(define-extern *title-control* (pointer title-control))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; mech-part ;;
|
||||
|
||||
@@ -852,5 +852,11 @@
|
||||
"whack": [
|
||||
[0, "(function (pointer process) :behavior whack-a-metal)"],
|
||||
[6, "(function int none :behavior whack-a-metal)"]
|
||||
],
|
||||
"title-obs": [
|
||||
[3, "(function external-art-buffer none)"],
|
||||
[16, "(function none)"],
|
||||
[17, "(function process-drawable vector cspace object)"],
|
||||
[18, "(function object)"]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -516,7 +516,8 @@
|
||||
1, 2, 4, 6, 7, 14, 17, 19, 22, 24, 26, 27, 29, 31, 33, 35
|
||||
],
|
||||
"(anon-function 2 ruins-obs)": [7, 28, 37, 50, 51, 61, 62, 71],
|
||||
"(anon-function 62 sig0-course)": [0, 1, 5, 6]
|
||||
"(anon-function 62 sig0-course)": [0, 1, 5, 6],
|
||||
"(method 67 collide-shape-moving)": [0, 1, 2, 3, 11, 12, 13]
|
||||
},
|
||||
|
||||
// Sometimes the game might use format strings that are fetched dynamically,
|
||||
|
||||
@@ -89,12 +89,12 @@
|
||||
// "DGO/LTESS.DGO",
|
||||
"DGO/CFA.DGO",
|
||||
// "DGO/TOMBEXT.DGO",
|
||||
// "DGO/LCGUARD.DGO",
|
||||
"DGO/LCGUARD.DGO",
|
||||
"DGO/TOE.DGO",
|
||||
// "DGO/PALBOSS.DGO",
|
||||
"DGO/FRB.DGO",
|
||||
"DGO/PAE.DGO",
|
||||
// "DGO/TITLE.DGO",
|
||||
"DGO/TITLE.DGO",
|
||||
"DGO/FORDUMPD.DGO",
|
||||
"DGO/D3A.DGO",
|
||||
"DGO/DRILLMTN.DGO",
|
||||
@@ -123,7 +123,7 @@
|
||||
"DGO/PAS.DGO",
|
||||
// "DGO/LBBUSH.DGO",
|
||||
"DGO/LPACKAGE.DGO",
|
||||
// "DGO/LINTCSTB.DGO",
|
||||
"DGO/LINTCSTB.DGO",
|
||||
// "DGO/LPORTRUN.DGO",
|
||||
// "DGO/LASHGRD.DGO",
|
||||
"DGO/CGB.DGO",
|
||||
@@ -143,7 +143,7 @@
|
||||
"DGO/CMB.DGO",
|
||||
"DGO/LGUARD.DGO",
|
||||
"DGO/CPA.DGO",
|
||||
// "DGO/LCITYLOW.DGO",
|
||||
"DGO/LCITYLOW.DGO",
|
||||
// "DGO/LTENTOUT.DGO",
|
||||
"DGO/UNB.DGO",
|
||||
"DGO/CPO.DGO",
|
||||
@@ -208,13 +208,18 @@
|
||||
"FEB.DGO",
|
||||
"FOB.DGO",
|
||||
"FOR.DGO",
|
||||
"TITLE.DGO",
|
||||
"FORDUMPD.DGO",
|
||||
"GGA.DGO",
|
||||
"HIDEOUT.DGO",
|
||||
"HIPHOG.DGO",
|
||||
"INTROCST.DGO",
|
||||
"KIOSK.DGO",
|
||||
"LCGUARD.DGO",
|
||||
"LCITYLOW.DGO",
|
||||
"LDJAKBRN.DGO",
|
||||
"LGUARD.DGO",
|
||||
"LINTCSTB.DGO",
|
||||
"LPROTECT.DGO",
|
||||
"LSACK.DGO",
|
||||
"LTRNYSAM.DGO",
|
||||
@@ -225,6 +230,7 @@
|
||||
"MTX.DGO",
|
||||
"ONINTENT.DGO",
|
||||
"ORACLE.DGO",
|
||||
"MTN.DGO",
|
||||
"PRI.DGO",
|
||||
"RUI.DGO",
|
||||
"SAG.DGO",
|
||||
|
||||
@@ -1414,7 +1414,7 @@
|
||||
"(code die fort-missile)": [[16, "matrix"]],
|
||||
"birth-func-dig-digger-collide": [[16, ["inline-array", "vector", 5]]],
|
||||
"(method 29 dig-bomb-crate)": [[16, "dig-bomb-crate-cylinder-spawn-params"]],
|
||||
"(method 63 collide-shape-moving)": [[16, ["inline-array", "vector", 51]]],
|
||||
"(method 63 collide-shape-moving)": [[16, "rb-work"]],
|
||||
"(code active dig-spikey-sphere-door)": [
|
||||
[32, "projectile-init-by-other-params"]
|
||||
],
|
||||
@@ -1644,5 +1644,12 @@
|
||||
"(code active whack-a-metal)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
"(code startup title-control)": [
|
||||
[16, ["array", "symbol", 6]],
|
||||
[48, "mc-slot-info"]
|
||||
],
|
||||
"title-plug-lightning": [
|
||||
[16, "vector"]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -2359,7 +2359,7 @@
|
||||
"(anon-function 31 script)": [
|
||||
[25, "s3", "process-drawable"],
|
||||
[59, "v0", "joint"],
|
||||
[14, "s5", "(function process vector cspace)"]
|
||||
[14, "s5", "(function process vector cspace none)"]
|
||||
],
|
||||
"(method 9 script-context)": [[81, "s5", "symbol"]],
|
||||
"(anon-function 33 script)": [
|
||||
@@ -7414,5 +7414,26 @@
|
||||
],
|
||||
"(anon-function 97 sig0-course)": [[62, "v1", "sigt-wait-spot"]],
|
||||
"(anon-function 11 ash1-course)": [[51, "v1", "asht-wait-spot"]],
|
||||
"(anon-function 4 ash1-course)": [[99, "v1", "asht-wait-spot"]]
|
||||
"(anon-function 4 ash1-course)": [[99, "v1", "asht-wait-spot"]],
|
||||
"(method 67 collide-shape-moving)": [
|
||||
[8, "v1", "collide-shape-prim-group"],
|
||||
[[30, 56], "s1", "collide-cache-prim"]
|
||||
],
|
||||
"(method 63 collide-shape-moving)": [
|
||||
[118, "v1", "collide-shape-prim"],
|
||||
[379, "a0", "collide-shape-prim-mesh"],
|
||||
[410, "v1", "collide-shape-prim-mesh"],
|
||||
[459, "v1", "collide-shape-prim-mesh"]
|
||||
],
|
||||
"(post startup title-control)": [
|
||||
[[8, 32], "gp", "process-drawable"],
|
||||
[[211, 216], "v1", "external-art-buffer"]
|
||||
],
|
||||
"(code startup title-control)": [
|
||||
[[261, 265], "v1", "handle"],
|
||||
[257, "gp", "handle"]
|
||||
],
|
||||
"title-plug-lightning": [
|
||||
[99, "v1", "title-control"]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ struct RPC_Str_Cmd_Jak2 {
|
||||
char basename[48]; // 32
|
||||
};
|
||||
|
||||
struct RPC_Play_Cmd {
|
||||
struct RPC_Play_Cmd_Jak1 {
|
||||
u16 rsvd;
|
||||
u16 result;
|
||||
u32 address;
|
||||
@@ -67,6 +67,39 @@ struct RPC_Play_Cmd {
|
||||
char name[48];
|
||||
};
|
||||
|
||||
struct SoundStreamName {
|
||||
char chars[48];
|
||||
};
|
||||
|
||||
struct RPC_Play_Cmd_Jak2 {
|
||||
u16 rsvd;
|
||||
u16 result;
|
||||
u32 address;
|
||||
u32 section;
|
||||
u32 maxlen;
|
||||
u32 id[4];
|
||||
SoundStreamName names[4];
|
||||
u32 pad[8];
|
||||
};
|
||||
static_assert(sizeof(RPC_Play_Cmd_Jak2) == 256);
|
||||
|
||||
/*
|
||||
*
|
||||
(deftype play-chunk-msg (structure)
|
||||
((rsvd uint16 :offset-assert 0)
|
||||
(result uint16 :offset-assert 2)
|
||||
(address pointer :offset-assert 4)
|
||||
(section uint32 :offset-assert 8)
|
||||
(maxlen uint32 :offset-assert 12)
|
||||
(id uint32 4 :offset-assert 16)
|
||||
(basename sound-stream-name 4 :inline :offset-assert 32)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #xe0
|
||||
:flag-assert #x9000000e0
|
||||
)
|
||||
*/
|
||||
|
||||
constexpr int STR_RPC_RESULT_ERROR = 1;
|
||||
constexpr int STR_RPC_RESULT_DONE = 0;
|
||||
|
||||
|
||||
@@ -127,9 +127,14 @@ void OpenGLRenderer::init_bucket_renderers_jak2() {
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l4-tfrag", BucketCategory::TEX,
|
||||
BucketId::TEX_L4_TFRAG);
|
||||
init_bucket_renderer<TFragment>("tfrag-l4-tfrag", BucketCategory::TFRAG, BucketId::TFRAG_L4_TFRAG,
|
||||
std::vector{tfrag3::TFragmentTreeKind::NORMAL}, false, 3);
|
||||
init_bucket_renderer<Tie3>("tie-l4-tfrag", BucketCategory::TIE, BucketId::TIE_L4_TFRAG, 3);
|
||||
std::vector{tfrag3::TFragmentTreeKind::NORMAL}, false, 4);
|
||||
init_bucket_renderer<Tie3>("tie-l4-tfrag", BucketCategory::TIE, BucketId::TIE_L4_TFRAG, 4);
|
||||
// 60
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l5-tfrag", BucketCategory::TEX,
|
||||
BucketId::TEX_L5_TFRAG);
|
||||
init_bucket_renderer<TFragment>("tfrag-l5-tfrag", BucketCategory::TFRAG, BucketId::TFRAG_L5_TFRAG,
|
||||
std::vector{tfrag3::TFragmentTreeKind::NORMAL}, false, 5);
|
||||
init_bucket_renderer<Tie3>("tie-l5-tfrag", BucketCategory::TIE, BucketId::TIE_L5_TFRAG, 5);
|
||||
// 70
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l0-shrub", BucketCategory::TEX,
|
||||
BucketId::TEX_L0_SHRUB);
|
||||
@@ -151,6 +156,9 @@ void OpenGLRenderer::init_bucket_renderers_jak2() {
|
||||
BucketId::TEX_L4_SHRUB);
|
||||
// 110
|
||||
init_bucket_renderer<Shrub>("shrub-l4-shrub", BucketCategory::SHRUB, BucketId::SHRUB_L4_SHRUB);
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l5-shrub", BucketCategory::TEX,
|
||||
BucketId::TEX_L5_SHRUB);
|
||||
init_bucket_renderer<Shrub>("shrub-l5-shrub", BucketCategory::SHRUB, BucketId::SHRUB_L5_SHRUB);
|
||||
// 120
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l0-alpha", BucketCategory::TEX,
|
||||
BucketId::TEX_L0_ALPHA);
|
||||
@@ -167,10 +175,15 @@ void OpenGLRenderer::init_bucket_renderers_jak2() {
|
||||
init_bucket_renderer<Merc2>("merc-l1-alpha", BucketCategory::MERC, BucketId::MERC_L1_ALPHA);
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l2-alpha", BucketCategory::TEX,
|
||||
BucketId::TEX_L2_ALPHA);
|
||||
init_bucket_renderer<TFragment>("tfrag-t-l2-alpha", BucketCategory::TFRAG,
|
||||
BucketId::TFRAG_T_L2_ALPHA,
|
||||
std::vector{tfrag3::TFragmentTreeKind::TRANS}, false, 2);
|
||||
// 150
|
||||
init_bucket_renderer<Merc2>("merc-l2-alpha", BucketCategory::MERC, BucketId::MERC_L2_ALPHA);
|
||||
// 160
|
||||
// 170
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l5-alpha", BucketCategory::TEX,
|
||||
BucketId::TEX_L5_ALPHA);
|
||||
// 180
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-lcom-tfrag", BucketCategory::TEX,
|
||||
BucketId::TEX_LCOM_TFRAG);
|
||||
@@ -198,14 +211,17 @@ void OpenGLRenderer::init_bucket_renderers_jak2() {
|
||||
init_bucket_renderer<Merc2>("merc-l4-pris", BucketCategory::MERC, BucketId::MERC_L4_PRIS);
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l5-pris", BucketCategory::TEX,
|
||||
BucketId::TEX_L5_PRIS);
|
||||
init_bucket_renderer<Merc2>("merc-l5-pris", BucketCategory::MERC, BucketId::MERC_L5_PRIS);
|
||||
// 220
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-lcom-pris", BucketCategory::TEX,
|
||||
BucketId::TEX_LCOM_PRIS);
|
||||
init_bucket_renderer<Merc2>("merc-lcom-pris", BucketCategory::MERC, BucketId::MERC_LCOM_PRIS);
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l0-pris2", BucketCategory::TEX,
|
||||
BucketId::TEX_L0_PRIS2);
|
||||
init_bucket_renderer<Merc2>("merc-l0-pris2", BucketCategory::MERC, BucketId::MERC_L0_PRIS2);
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l1-pris2", BucketCategory::TEX,
|
||||
BucketId::TEX_L1_PRIS2);
|
||||
init_bucket_renderer<Merc2>("merc-l1-pris2", BucketCategory::MERC, BucketId::MERC_L1_PRIS2);
|
||||
// 230
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l2-pris2", BucketCategory::TEX,
|
||||
BucketId::TEX_L2_PRIS2);
|
||||
@@ -228,15 +244,19 @@ void OpenGLRenderer::init_bucket_renderers_jak2() {
|
||||
init_bucket_renderer<Merc2>("merc-l1-water", BucketCategory::MERC, BucketId::MERC_L1_WATER);
|
||||
init_bucket_renderer<TFragment>("tfrag-w-l1-alpha", BucketCategory::TFRAG,
|
||||
BucketId::TFRAG_W_L1_WATER,
|
||||
std::vector{tfrag3::TFragmentTreeKind::WATER}, false, 0);
|
||||
std::vector{tfrag3::TFragmentTreeKind::WATER}, false, 1);
|
||||
|
||||
// 270
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l2-water", BucketCategory::TEX,
|
||||
BucketId::TEX_L2_WATER);
|
||||
init_bucket_renderer<Merc2>("merc-l2-water", BucketCategory::MERC, BucketId::MERC_L2_WATER);
|
||||
init_bucket_renderer<TFragment>("tfrag-w-l2-alpha", BucketCategory::TFRAG,
|
||||
BucketId::TFRAG_W_L2_WATER,
|
||||
std::vector{tfrag3::TFragmentTreeKind::WATER}, false, 2);
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l3-water", BucketCategory::TEX,
|
||||
BucketId::TEX_L3_WATER);
|
||||
// 280
|
||||
init_bucket_renderer<Merc2>("merc-l3-water", BucketCategory::MERC, BucketId::MERC_L3_WATER);
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l4-water", BucketCategory::TEX,
|
||||
BucketId::TEX_L4_WATER);
|
||||
init_bucket_renderer<Merc2>("merc-l4-water", BucketCategory::MERC, BucketId::MERC_L4_WATER);
|
||||
@@ -261,6 +281,10 @@ void OpenGLRenderer::init_bucket_renderers_jak2() {
|
||||
// 320
|
||||
init_bucket_renderer<DirectRenderer>("progress", BucketCategory::OTHER, BucketId::PROGRESS,
|
||||
0x8000);
|
||||
init_bucket_renderer<DirectRenderer>("screen-filter", BucketCategory::OTHER,
|
||||
BucketId::SCREEN_FILTER, 0x8000);
|
||||
init_bucket_renderer<DirectRenderer>("bucket-322", BucketCategory::OTHER, BucketId::BUCKET_322,
|
||||
0x8000);
|
||||
init_bucket_renderer<DirectRenderer>("debug2", BucketCategory::OTHER, BucketId::DEBUG2, 0x8000);
|
||||
init_bucket_renderer<DirectRenderer>("debug-no-zbuf2", BucketCategory::OTHER,
|
||||
BucketId::DEBUG_NO_ZBUF2, 0x8000);
|
||||
|
||||
@@ -104,6 +104,9 @@ enum class BucketId {
|
||||
TEX_L4_TFRAG = 51,
|
||||
TFRAG_L4_TFRAG = 52,
|
||||
TIE_L4_TFRAG = 53,
|
||||
TEX_L5_TFRAG = 62,
|
||||
TFRAG_L5_TFRAG = 63,
|
||||
TIE_L5_TFRAG = 64,
|
||||
TEX_L0_SHRUB = 73,
|
||||
SHRUB_L0_SHRUB = 74,
|
||||
MERC_L0_SHRUB = 79,
|
||||
@@ -115,13 +118,17 @@ enum class BucketId {
|
||||
SHRUB_L3_SHRUB = 101,
|
||||
TEX_L4_SHRUB = 109,
|
||||
SHRUB_L4_SHRUB = 110,
|
||||
TEX_L5_SHRUB = 118,
|
||||
SHRUB_L5_SHRUB = 119,
|
||||
TEX_L0_ALPHA = 127,
|
||||
TFRAG_T_L0_ALPHA = 128,
|
||||
TEX_L1_ALPHA = 137,
|
||||
MERC_L1_ALPHA = 141,
|
||||
TFRAG_T_L1_ALPHA = 138,
|
||||
TEX_L2_ALPHA = 147,
|
||||
TFRAG_T_L2_ALPHA = 148,
|
||||
MERC_L2_ALPHA = 151,
|
||||
TEX_L5_ALPHA = 177,
|
||||
TEX_LCOM_TFRAG = 187,
|
||||
MERC_LCOM_TFRAG = 188,
|
||||
TEX_LCOM_SHRUB = 191,
|
||||
@@ -137,10 +144,13 @@ enum class BucketId {
|
||||
TEX_L4_PRIS = 212,
|
||||
MERC_L4_PRIS = 213,
|
||||
TEX_L5_PRIS = 216,
|
||||
MERC_L5_PRIS = 217,
|
||||
TEX_LCOM_PRIS = 220,
|
||||
MERC_LCOM_PRIS = 221,
|
||||
TEX_L0_PRIS2 = 224,
|
||||
MERC_L0_PRIS2 = 225,
|
||||
TEX_L1_PRIS2 = 228,
|
||||
MERC_L1_PRIS2 = 229,
|
||||
TEX_L2_PRIS2 = 232,
|
||||
TEX_L3_PRIS2 = 236,
|
||||
TEX_L4_PRIS2 = 240,
|
||||
@@ -152,7 +162,9 @@ enum class BucketId {
|
||||
TFRAG_W_L1_WATER = 264,
|
||||
TEX_L2_WATER = 270,
|
||||
MERC_L2_WATER = 271,
|
||||
TFRAG_W_L2_WATER = 273,
|
||||
TEX_L3_WATER = 279,
|
||||
MERC_L3_WATER = 280,
|
||||
TEX_L4_WATER = 288,
|
||||
MERC_L4_WATER = 289,
|
||||
TEX_LCOM_WATER = 306,
|
||||
@@ -165,6 +177,8 @@ enum class BucketId {
|
||||
DEBUG_NO_ZBUF1 = 318,
|
||||
TEX_ALL_MAP = 319,
|
||||
PROGRESS = 320,
|
||||
SCREEN_FILTER = 321,
|
||||
BUCKET_322 = 322,
|
||||
DEBUG2 = 324,
|
||||
DEBUG_NO_ZBUF2 = 325,
|
||||
DEBUG3 = 326,
|
||||
|
||||
@@ -23,10 +23,13 @@ using namespace iop;
|
||||
|
||||
static RPC_Str_Cmd_Jak1 sSTRBufJak1;
|
||||
static RPC_Str_Cmd_Jak2 sSTRBufJak2;
|
||||
static RPC_Play_Cmd sPLAYBuf[2]; // todo type
|
||||
static RPC_Play_Cmd_Jak1 sPLAYBufJak1[2];
|
||||
static RPC_Play_Cmd_Jak2 sPLAYBufJak2[2];
|
||||
|
||||
void* RPC_STR_jak1(unsigned int fno, void* _cmd, int y);
|
||||
void* RPC_STR_jak2(unsigned int fno, void* _cmd, int y);
|
||||
void* RPC_PLAY(unsigned int fno, void* _cmd, int y);
|
||||
void* RPC_PLAY_jak1(unsigned int fno, void* _cmd, int y);
|
||||
void* RPC_PLAY_jak2(unsigned int fno, void* _cmd, int y);
|
||||
|
||||
static constexpr int PLAY_MSG_SIZE = 0x40;
|
||||
|
||||
@@ -59,7 +62,8 @@ CacheEntryJ2 sCacheJ2[STR_INDEX_CACHE_SIZE];
|
||||
void stream_init_globals() {
|
||||
memset(&sSTRBufJak1, 0, sizeof(RPC_Str_Cmd_Jak1));
|
||||
memset(&sSTRBufJak2, 0, sizeof(RPC_Str_Cmd_Jak2));
|
||||
memset(&sPLAYBuf, 0, sizeof(RPC_Play_Cmd));
|
||||
memset(&sPLAYBufJak1, 0, sizeof(RPC_Play_Cmd_Jak1) * 2);
|
||||
memset(&sPLAYBufJak2, 0, sizeof(RPC_Play_Cmd_Jak2) * 2);
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -94,7 +98,17 @@ u32 PLAYThread() {
|
||||
CpuDisableIntr();
|
||||
sceSifInitRpc(0);
|
||||
sceSifSetRpcQueue(&dq, GetThreadId());
|
||||
sceSifRegisterRpc(&serve, PLAY_RPC_ID[g_game_version], RPC_PLAY, sPLAYBuf, nullptr, nullptr, &dq);
|
||||
if (g_game_version == GameVersion::Jak1) {
|
||||
sceSifRegisterRpc(&serve, PLAY_RPC_ID[g_game_version], RPC_PLAY_jak1, sPLAYBufJak1, nullptr,
|
||||
nullptr, &dq);
|
||||
|
||||
} else if (g_game_version == GameVersion::Jak2) {
|
||||
sceSifRegisterRpc(&serve, PLAY_RPC_ID[g_game_version], RPC_PLAY_jak2, sPLAYBufJak2, nullptr,
|
||||
nullptr, &dq);
|
||||
|
||||
} else {
|
||||
ASSERT_MSG(false, "unsupported game version in PLAYThread initialization!");
|
||||
}
|
||||
CpuEnableIntr();
|
||||
sceSifRpcLoop(&dq);
|
||||
return 0;
|
||||
@@ -216,7 +230,8 @@ void* RPC_STR_jak2(unsigned int fno, void* _cmd, int y) {
|
||||
|
||||
if (!file_record) {
|
||||
// didn't find the file
|
||||
printf("[OVERLORD STR] Failed to find animation %s\n", cmd->basename);
|
||||
printf("[OVERLORD STR] Failed to find animation %s (%s)\n", cmd->basename,
|
||||
animation_iso_name);
|
||||
cmd->result = STR_RPC_RESULT_ERROR;
|
||||
} else {
|
||||
// found it! See if we've cached this animation's header.
|
||||
@@ -263,11 +278,11 @@ void* RPC_STR_jak2(unsigned int fno, void* _cmd, int y) {
|
||||
return cmd;
|
||||
}
|
||||
|
||||
void* RPC_PLAY([[maybe_unused]] unsigned int fno, void* _cmd, int size) {
|
||||
void* RPC_PLAY_jak1([[maybe_unused]] unsigned int fno, void* _cmd, int size) {
|
||||
s32 n_messages = size / PLAY_MSG_SIZE;
|
||||
char namebuf[16];
|
||||
|
||||
auto* cmd = (RPC_Play_Cmd*)(_cmd);
|
||||
auto* cmd = (RPC_Play_Cmd_Jak1*)(_cmd);
|
||||
while (n_messages > 0) {
|
||||
if (cmd->name[0] == '$') {
|
||||
char* name_part = &cmd->name[1];
|
||||
@@ -319,3 +334,41 @@ void* RPC_PLAY([[maybe_unused]] unsigned int fno, void* _cmd, int size) {
|
||||
|
||||
return _cmd;
|
||||
}
|
||||
|
||||
/*!
|
||||
* This is just copied from Jak 1, and is totally wrong for jak 2.
|
||||
* It does nothing.
|
||||
*/
|
||||
void* RPC_PLAY_jak2([[maybe_unused]] unsigned int fno, void* _cmd, int size) {
|
||||
s32 n_messages = size / PLAY_MSG_SIZE;
|
||||
char namebuf[16];
|
||||
|
||||
auto* cmd = (RPC_Play_Cmd_Jak2*)(_cmd);
|
||||
while (n_messages > 0) {
|
||||
if (cmd->names[0].chars[0] == '$') {
|
||||
char* name_part = &cmd->names[0].chars[1];
|
||||
size_t name_len = strlen(name_part);
|
||||
|
||||
if (name_len < 9) {
|
||||
memset(namebuf, ' ', 8);
|
||||
memcpy(namebuf, name_part, name_len);
|
||||
} else {
|
||||
memcpy(namebuf, name_part, 8);
|
||||
}
|
||||
|
||||
// ASCII toupper
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (namebuf[i] >= 0x61 && namebuf[i] < 0x7b) {
|
||||
namebuf[i] -= 0x20;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ISONameFromAnimationName(namebuf, cmd->names[0].chars);
|
||||
}
|
||||
|
||||
n_messages--;
|
||||
cmd++;
|
||||
}
|
||||
|
||||
return _cmd;
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x3 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x3 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
@@ -7,3 +7,446 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for method 25 of type pov-camera
|
||||
(defmethod abort? pov-camera ((obj pov-camera))
|
||||
(when (or (and (>= (- (-> self clock frame-counter) (-> obj debounce-start-time)) (seconds 0.2))
|
||||
(cpad-pressed? 0 triangle)
|
||||
)
|
||||
(logtest? (-> obj flags) (pov-camera-flag allow-abort))
|
||||
)
|
||||
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons triangle))
|
||||
(logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons triangle))
|
||||
(when (logtest? (-> obj flags) (pov-camera-flag notify-of-abort))
|
||||
(send-event (handle->process (-> obj notify-handle)) 'notify 'abort-request)
|
||||
#t
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 26 of type pov-camera
|
||||
(defmethod target-grabbed? pov-camera ((obj pov-camera))
|
||||
(or (not *target*) (process-grab? *target* #f))
|
||||
)
|
||||
|
||||
;; definition for method 29 of type pov-camera
|
||||
(defmethod target-released? pov-camera ((obj pov-camera))
|
||||
(or (not *target*) (process-release? *target*))
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate pov-camera-startup (pov-camera)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(go-virtual pov-camera-start-playing)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate pov-camera-start-playing (pov-camera)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(logclear! (-> self mask) (process-mask actor-pause))
|
||||
(while (not (target-grabbed? self))
|
||||
(suspend)
|
||||
)
|
||||
(let ((gp-0 0))
|
||||
(let ((v1-7 (the-as joint (get-art-by-name-method (-> self draw jgeo) "camera" (the-as type #f)))))
|
||||
(if v1-7
|
||||
(set! gp-0 (+ (-> v1-7 number) 1))
|
||||
)
|
||||
)
|
||||
(let ((v1-10 (process-spawn othercam self gp-0 #t #t :to self)))
|
||||
(send-event (ppointer->process v1-10) 'mask (-> self mask-to-clear))
|
||||
)
|
||||
)
|
||||
(go-virtual pov-camera-playing)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function pov-camera-play-and-reposition
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defbehavior pov-camera-play-and-reposition pov-camera ((arg0 art-joint-anim) (arg1 vector) (arg2 float))
|
||||
(let ((s4-0 #f))
|
||||
(ja-no-eval :group! arg0 :num! (seek! (the float (+ (-> arg0 frames num-frames) -1)) arg2) :frame-num 0.0)
|
||||
(until (ja-done? 0)
|
||||
(let ((v1-4 (and (not s4-0) (< (the float (+ (-> (ja-group) frames num-frames) -4)) (ja-frame-num 0)))))
|
||||
(when v1-4
|
||||
(set! s4-0 #t)
|
||||
(send-event *camera* 'teleport-to-vector-start-string arg1)
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
(ja :num! (seek! max arg2))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate pov-camera-playing (pov-camera)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('abort)
|
||||
(when (logtest? (-> self flags) (pov-camera-flag notify-of-abort))
|
||||
(logior! (-> self flags) (pov-camera-flag allow-abort))
|
||||
(if (= (-> self anim-name type) string)
|
||||
(go-virtual pov-camera-abort)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ()
|
||||
(set! (-> self debounce-start-time) (-> self clock frame-counter))
|
||||
(if (= (-> self anim-name type) string)
|
||||
(backup-load-state-and-set-cmds *load-state* (-> self command-list))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(if (= (-> self anim-name type) string)
|
||||
(restore-load-state-and-cleanup *load-state*)
|
||||
)
|
||||
(remove-setting! 'music-volume)
|
||||
(remove-setting! 'sfx-volume)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(add-setting! 'music-volume 'rel (-> self music-volume-movie) 0)
|
||||
(add-setting! 'sfx-volume 'rel (-> self sfx-volume-movie) 0)
|
||||
(cond
|
||||
((= (-> self anim-name type) string)
|
||||
(ja-no-eval :group! (ja-group)
|
||||
:num! (seek! (the float (+ (-> (ja-group) frames num-frames) -1)))
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(abort? self)
|
||||
(suspend)
|
||||
(ja :num! (seek!))
|
||||
)
|
||||
)
|
||||
((= (-> self anim-name type) spool-anim)
|
||||
(ja-play-spooled-anim
|
||||
(the-as spool-anim (-> self anim-name))
|
||||
(the-as art-joint-anim #f)
|
||||
(the-as art-joint-anim #f)
|
||||
(method-of-object self abort?)
|
||||
)
|
||||
)
|
||||
)
|
||||
(go-virtual pov-camera-done-playing)
|
||||
(none)
|
||||
)
|
||||
:post (behavior ()
|
||||
(if (= (-> self anim-name type) string)
|
||||
(execute-commands-up-to *load-state* (ja-aframe-num 0))
|
||||
)
|
||||
(ja-post)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate pov-camera-abort (pov-camera)
|
||||
:virtual #t
|
||||
:enter (behavior ()
|
||||
(logior! (-> self flags) (pov-camera-flag allow-abort))
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(set-blackout-frames (seconds 0.035))
|
||||
(suspend)
|
||||
(suspend)
|
||||
(go-virtual pov-camera-done-playing)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate pov-camera-done-playing (pov-camera)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(while (not (target-released? self))
|
||||
(suspend)
|
||||
)
|
||||
(send-event (handle->process (-> self notify-handle)) 'notify 'die)
|
||||
(suspend)
|
||||
(suspend)
|
||||
(cleanup-for-death self)
|
||||
(deactivate self)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 28 of type pov-camera
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod pov-camera-method-28 pov-camera ()
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 27 of type pov-camera
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod pov-camera-method-27 pov-camera ()
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function pov-camera-init-by-other
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defbehavior pov-camera-init-by-other pov-camera ((arg0 vector) (arg1 skeleton-group) (arg2 string) (arg3 pov-camera-flag) (arg4 process-drawable) (arg5 pair))
|
||||
((method-of-object self pov-camera-method-27))
|
||||
(set! (-> *game-info* pov-camera-handle) (process->handle self))
|
||||
(set! (-> self flags) arg3)
|
||||
(set! (-> self command-list) arg5)
|
||||
(set! (-> self music-volume-movie) 100.0)
|
||||
(set! (-> self sfx-volume-movie) 100.0)
|
||||
(if arg4
|
||||
(set! (-> self notify-handle) (process->handle arg4))
|
||||
(set! (-> self notify-handle) (the-as handle #f))
|
||||
)
|
||||
(set! (-> self debounce-start-time) (-> self clock frame-counter))
|
||||
(logclear! (-> self mask) (process-mask actor-pause movie enemy platform projectile))
|
||||
(set! (-> self root) (new 'process 'trsqv))
|
||||
(set! (-> self root trans quad) (-> arg0 quad))
|
||||
(when (logtest? (-> self flags) (pov-camera-flag inherit-orientation))
|
||||
(let ((v1-21 (if (type? arg4 process-drawable)
|
||||
arg4
|
||||
)
|
||||
)
|
||||
)
|
||||
(quaternion-copy! (-> self root quat) (-> v1-21 root quat))
|
||||
)
|
||||
)
|
||||
(initialize-skeleton self arg1 (the-as pair 0))
|
||||
(logior! (-> self draw status) (draw-control-status no-draw-bounds))
|
||||
(logior! (-> self skel status) (joint-control-status sync-math))
|
||||
(set! (-> self anim-name) arg2)
|
||||
(cond
|
||||
((= (-> arg2 type) string)
|
||||
(logior! (-> self skel status) (joint-control-status valid-spooled-frame))
|
||||
(let ((s5-1 (get-art-by-name (-> self draw art-group) arg2 art-joint-anim)))
|
||||
(if (not s5-1)
|
||||
(go process-drawable-art-error arg2)
|
||||
)
|
||||
(ja-channel-set! 1)
|
||||
(set! (-> self skel root-channel 0 frame-group) s5-1)
|
||||
)
|
||||
)
|
||||
((= (-> arg2 type) spool-anim)
|
||||
)
|
||||
)
|
||||
(set! (-> self mask-to-clear) (process-mask movie enemy platform projectile))
|
||||
(set! (-> self event-hook)
|
||||
(lambda :behavior pov-camera
|
||||
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(the-as object (case arg2
|
||||
(('mask)
|
||||
(let ((v0-0 (the-as number (-> arg3 param 0))))
|
||||
(set! (-> self mask-to-clear) (the-as process-mask v0-0))
|
||||
v0-0
|
||||
)
|
||||
)
|
||||
(('music-movie-volume)
|
||||
(set! (-> self music-volume-movie) (the-as float (-> arg3 param 0)))
|
||||
)
|
||||
(('sfx-movie-volume)
|
||||
(set! (-> self sfx-volume-movie) (the-as float (-> arg3 param 0)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
((method-of-object self pov-camera-method-28))
|
||||
(go-virtual pov-camera-startup)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function othercam-calc
|
||||
(defun othercam-calc ((arg0 float))
|
||||
(set! (-> *camera-other-fov* data) (* 2.0 (atan (/ 14.941477 (* 20.3 arg0)) 1.0)))
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate othercam-running (othercam)
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(local-vars (v0-0 object))
|
||||
(case event-type
|
||||
(('die)
|
||||
(set! v0-0 #t)
|
||||
(set! (-> self die?) (the-as symbol v0-0))
|
||||
v0-0
|
||||
)
|
||||
(('joint)
|
||||
(cond
|
||||
((type? (-> event param 0) string)
|
||||
(let ((v1-7 (the-as joint (get-art-by-name-method
|
||||
(-> (the-as process-drawable (-> self hand process 0)) draw jgeo)
|
||||
(the-as string (-> event param 0))
|
||||
(the-as type #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when v1-7
|
||||
(set! v0-0 (+ (-> v1-7 number) 1))
|
||||
(set! (-> self cam-joint-index) (the-as int v0-0))
|
||||
v0-0
|
||||
)
|
||||
)
|
||||
)
|
||||
((not (logtest? (-> event param 0) 7))
|
||||
(set! v0-0 (/ (the-as int (-> event param 0)) 8))
|
||||
(set! (-> self cam-joint-index) (the-as int v0-0))
|
||||
v0-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(('target)
|
||||
(set! v0-0 (process->handle (the-as process (-> event param 0))))
|
||||
(set! (-> self hand) (the-as handle v0-0))
|
||||
v0-0
|
||||
)
|
||||
(('mask)
|
||||
(set! v0-0 (-> event param 0))
|
||||
(set! (-> self mask-to-clear) (the-as process-mask v0-0))
|
||||
v0-0
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ()
|
||||
(hide-hud-quick #f)
|
||||
(case (-> self spooling?)
|
||||
(('logo 'scene-player)
|
||||
)
|
||||
(else
|
||||
(add-setting! 'process-mask 'set 0 (-> self mask-to-clear))
|
||||
(add-setting! 'movie (process->ppointer self) 0 0)
|
||||
(if (not (-> self border-value))
|
||||
(add-setting! 'border-mode (-> self border-value) 0 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self had-valid-frame) #f)
|
||||
(let ((gp-0 (the-as process-drawable (-> self hand process 0))))
|
||||
(vector<-cspace! (-> self old-pos) (-> gp-0 node-list data (-> self cam-joint-index)))
|
||||
(let ((v1-20 (-> gp-0 node-list data (-> self cam-joint-index) bone transform)))
|
||||
(vector-normalize-copy! (-> self old-mat-z) (-> v1-20 vector 2) -1.0)
|
||||
)
|
||||
)
|
||||
(apply-settings *setting-control*)
|
||||
(none)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(remove-setting! 'process-mask)
|
||||
(apply-settings *setting-control*)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(until #f
|
||||
(let ((s2-0 (the-as process-drawable (-> self hand process 0))))
|
||||
(when (not s2-0)
|
||||
(format #t "ERROR<GMJ>: othercam parent invalid~%")
|
||||
(deactivate self)
|
||||
)
|
||||
(set! (-> *camera-other-root* quad) (-> s2-0 root trans quad))
|
||||
(let ((s4-0 (-> s2-0 node-list data (-> self cam-joint-index) bone transform))
|
||||
(s3-0 (-> s2-0 node-list data (-> self cam-joint-index) bone scale))
|
||||
(gp-0 (new 'stack-no-clear 'vector))
|
||||
(s5-0 (new 'stack-no-clear 'vector))
|
||||
(s1-0
|
||||
(or (!= (-> self spooling?) #t) (logtest? (-> s2-0 skel status) (joint-control-status valid-spooled-frame)))
|
||||
)
|
||||
)
|
||||
(vector<-cspace! s5-0 (-> s2-0 node-list data (-> self cam-joint-index)))
|
||||
(vector-normalize-copy! gp-0 (-> s4-0 vector 2) -1.0)
|
||||
(cond
|
||||
((< (vector-length (-> s4-0 vector 2)) 0.1)
|
||||
(set-blackout-frames (seconds 0.017))
|
||||
(if (not (logtest? (-> s2-0 draw status) (draw-control-status no-draw no-draw-temp)))
|
||||
(format 0 "ERROR: other camera zero matrix!~%")
|
||||
)
|
||||
)
|
||||
(s1-0
|
||||
(when (not (-> self had-valid-frame))
|
||||
(set! (-> self had-valid-frame) (the-as basic #t))
|
||||
(set! (-> self old-pos quad) (-> s5-0 quad))
|
||||
(set! (-> self old-mat-z quad) (-> gp-0 quad))
|
||||
)
|
||||
(set! (-> *camera-other-trans* quad) (-> s5-0 quad))
|
||||
(vector-normalize-copy!
|
||||
(the-as vector (-> *camera-other-matrix* vector))
|
||||
(the-as vector (-> s4-0 vector))
|
||||
-1.0
|
||||
)
|
||||
(set! (-> *camera-other-matrix* vector 0 w) 0.0)
|
||||
(vector-normalize-copy! (-> *camera-other-matrix* vector 1) (-> s4-0 vector 1) 1.0)
|
||||
(set! (-> *camera-other-matrix* vector 1 w) 0.0)
|
||||
(vector-normalize-copy! (-> *camera-other-matrix* vector 2) (-> s4-0 vector 2) -1.0)
|
||||
(set! (-> *camera-other-matrix* vector 2 w) 0.0)
|
||||
(vector-reset! (-> *camera-other-matrix* trans))
|
||||
(set! (-> self fov) (othercam-calc (-> s3-0 x)))
|
||||
(set! *camera-look-through-other* 2)
|
||||
(set! (-> self old-pos quad) (-> s5-0 quad))
|
||||
(set! (-> self old-mat-z quad) (-> gp-0 quad))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
(let ((a0-27 (-> self hand process 0)))
|
||||
(when (or (-> self die?) (and (not (-> self survive-anim-end?)) (ja-anim-done? a0-27)))
|
||||
(let ((gp-1 (-> self clock frame-counter)))
|
||||
(while (and (< (- (-> self clock frame-counter) gp-1) (seconds 60))
|
||||
(or (and (-> self entity) (not (is-object-visible? (-> self level) (-> self entity extra vis-id))))
|
||||
(< 81920.0 (vector-vector-distance (camera-pos) (-> *math-camera* trans)))
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(deactivate self)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function othercam-init-by-other
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defbehavior othercam-init-by-other othercam ((arg0 pov-camera) (arg1 int) (arg2 symbol) (arg3 symbol))
|
||||
(set! (-> self spooling?) arg3)
|
||||
(case (-> self spooling?)
|
||||
(('logo)
|
||||
)
|
||||
(else
|
||||
(set! (-> *game-info* other-camera-handle) (process->handle self))
|
||||
)
|
||||
)
|
||||
(set! (-> self hand) (process->handle arg0))
|
||||
(set! (-> self cam-joint-index) arg1)
|
||||
(logclear! (-> self mask) (process-mask freeze pause menu actor-pause))
|
||||
(set! (-> self border-value) #f)
|
||||
(set! (-> self die?) #f)
|
||||
(set! (-> self survive-anim-end?) arg2)
|
||||
(set! (-> self mask-to-clear) (process-mask movie enemy platform projectile))
|
||||
(set! (-> self event-hook) (-> othercam-running event))
|
||||
(go othercam-running)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -374,7 +374,7 @@
|
||||
|
||||
(deftype collide-prim-core (structure)
|
||||
((world-sphere vector :inline :offset-assert 0)
|
||||
(collide-as collide-spec :offset-assert 16)
|
||||
(collide-as collide-spec :offset 16)
|
||||
(collide-with collide-spec :offset-assert 20)
|
||||
(action collide-action :offset-assert 24)
|
||||
(prim-type prim-type :offset-assert 28)
|
||||
@@ -566,7 +566,7 @@
|
||||
(try-snap-to-surface (_type_ vector float float float) symbol 64)
|
||||
(fill-and-try-snap-to-surface (_type_ vector float float float collide-query) symbol 65)
|
||||
(step-collison! (_type_ vector vector float int) float 66)
|
||||
(collide-shape-moving-method-67 () none 67)
|
||||
(collide-with-all-collide-cache-prims (_type_ matrix collide-query) none 67)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -1548,6 +1548,13 @@ This commonly includes things such as:
|
||||
)
|
||||
)
|
||||
)
|
||||
;; Note: there's some changes here to skip setting things if arg4 is #f.
|
||||
;; the address of #f is misaligned, but on ps2 the lq instruction will silently mask.
|
||||
;; Loading from #f doesn't really make sense, so this was likely just a mistake in the
|
||||
;; original game.
|
||||
;; the OpenGOAL compiler uses vmovaps, which will crash on a misaligned load because
|
||||
;; this has been useful for finding errors. So to prevent this crash, we skip the load
|
||||
;; if the argument is #f. (some callers of this directly pass #f, so it's not a bug higher up).
|
||||
(cond
|
||||
((>= 256 (the-as int arg4))
|
||||
(set! (-> self target-joint0) (the-as int arg4))
|
||||
@@ -1555,7 +1562,10 @@ This commonly includes things such as:
|
||||
)
|
||||
(else
|
||||
(set! (-> self target-joint0) -1)
|
||||
(set! (-> self offset0 quad) (-> arg4 quad))
|
||||
;; hack, fixed bug in original game
|
||||
(when arg4
|
||||
(set! (-> self offset0 quad) (-> arg4 quad))
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
@@ -1565,7 +1575,10 @@ This commonly includes things such as:
|
||||
)
|
||||
(else
|
||||
(set! (-> self target-joint1) -1)
|
||||
(set! (-> self offset1 quad) (-> arg5 quad))
|
||||
;; hack, fixed bug in original game
|
||||
(when arg5
|
||||
(set! (-> self offset1 quad) (-> arg5 quad))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self root) (new 'process 'trsqv))
|
||||
|
||||
@@ -5,13 +5,20 @@
|
||||
;; name in dgo: idle-control
|
||||
;; dgos: GAME, COMMON
|
||||
|
||||
(defenum ic-cmd
|
||||
:type uint8
|
||||
(restart 0)
|
||||
(play 1)
|
||||
(push 2)
|
||||
)
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype idle-control-frame (uint32)
|
||||
((command uint8 :offset 0 :size 8)
|
||||
(anim uint8 :offset 8 :size 8)
|
||||
(param0 uint8 :offset 16 :size 8)
|
||||
(param1 uint8 :offset 24 :size 8)
|
||||
((command ic-cmd :offset 0 :size 8)
|
||||
(anim uint8 :offset 8 :size 8)
|
||||
(param0 uint8 :offset 16 :size 8)
|
||||
(param1 uint8 :offset 24 :size 8)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x4
|
||||
@@ -47,15 +54,15 @@
|
||||
;; TODO - method manually patched (maybe incorrectly) around `self` changing
|
||||
;; WARN: Function (method 10 idle-control) has a return type of none, but the expression builder found a return statement.
|
||||
(defmethod idle-control-method-10 idle-control ((obj idle-control) (arg0 process-drawable))
|
||||
(local-vars (a1-1 int))
|
||||
(local-vars (a1-1 int) (backup-pp process))
|
||||
(when (nonzero? (-> obj anim))
|
||||
(let ((s5-0 self))
|
||||
(with-pp
|
||||
(set! backup-pp pp)
|
||||
(set! pp arg0)
|
||||
(loop
|
||||
(let* ((s4-0 (-> obj current 0))
|
||||
(v1-4 (-> s4-0 command))
|
||||
)
|
||||
(cond
|
||||
((= v1-4 1)
|
||||
(let ((s4-0 (-> obj current 0)))
|
||||
(case (-> s4-0 command)
|
||||
(((ic-cmd play))
|
||||
(if (< (-> s4-0 anim) 0)
|
||||
(return #f)
|
||||
)
|
||||
@@ -102,14 +109,14 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
((= v1-4 2)
|
||||
(((ic-cmd push))
|
||||
(ja-channel-push! 1 (the-as time-frame (-> s4-0 param0)))
|
||||
(set! (-> obj current) (&-> (-> obj current) 1))
|
||||
(set! (-> obj counter) 0)
|
||||
(set! (-> obj target) 0)
|
||||
0
|
||||
)
|
||||
((zero? v1-4)
|
||||
(((ic-cmd restart))
|
||||
(set! (-> obj current) (-> obj anim))
|
||||
(set! (-> obj counter) 0)
|
||||
(set! (-> obj target) 0)
|
||||
@@ -118,8 +125,12 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! pp backup-pp)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -66,5 +66,13 @@
|
||||
)
|
||||
)
|
||||
|
||||
;; hack
|
||||
|
||||
(defun draw-raw-image ((arg0 bucket-id) (arg1 art-group) (arg2 int) (arg3 int) (arg4 level) (arg5 int))
|
||||
(format 0 "unimplemented draw-raw-image~%")
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
|
||||
@@ -2684,7 +2684,7 @@
|
||||
(camera-pos)
|
||||
(new 'static 'boxed-array :type symbol :length 0 :allocated-length 6)
|
||||
(update *setting-control*)
|
||||
;; (update *gui-control* #t)
|
||||
(update *gui-control* #t)
|
||||
(update *art-control* #t)
|
||||
(clear-rec *art-control*)
|
||||
(dotimes (s5-0 6)
|
||||
|
||||
@@ -783,9 +783,48 @@
|
||||
)
|
||||
)
|
||||
|
||||
;; to allow streaming animations to play without overload VAG streaming, set STREAM_PLAY_HACK.
|
||||
;; in the ja-play-spooled-anim function below, we use the get-current-str-pos/get-str-id-is-playing?
|
||||
;; instead of the usual current-str-pos/str-id-is-playing? functions. The #cond below remaps those
|
||||
;; to point to hacked versions if STREAM_PLAY_HACK is true, otherwise it just maps to the original
|
||||
;; version.
|
||||
|
||||
(defglobalconstant STREAM_PLAY_HACK #t)
|
||||
(#cond
|
||||
(STREAM_PLAY_HACK
|
||||
(define *hack-pos-buffer-id* (new 'static 'array int 4)) ;; 4 channels?
|
||||
(define *hack-pos-buffer-pos* (new 'static 'array int 4)) ;; 4 channels?
|
||||
(define *hack-pos-next-idx* 0) ;; new channel, if none is found.
|
||||
(define *hack-pos-speed* 5)
|
||||
(defun get-current-str-pos ((obj sound-id))
|
||||
(dotimes (i 4)
|
||||
(when (= (-> *hack-pos-buffer-id* i) obj)
|
||||
(+! (-> *hack-pos-buffer-pos* i) *hack-pos-speed*)
|
||||
(return (-> *hack-pos-buffer-pos* i))
|
||||
)
|
||||
)
|
||||
(set! (-> *hack-pos-buffer-id* *hack-pos-next-idx*) (the-as int obj))
|
||||
(set! (-> *hack-pos-buffer-pos* *hack-pos-next-idx*) 0)
|
||||
(+! *hack-pos-next-idx* 1)
|
||||
(if (= *hack-pos-next-idx* 4)
|
||||
(set! *hack-pos-next-idx* 0)
|
||||
)
|
||||
*hack-pos-speed*
|
||||
)
|
||||
(defun get-str-id-is-playing? ((obj int))
|
||||
#t
|
||||
)
|
||||
)
|
||||
(#t
|
||||
(define get-current-str-pos current-str-pos)
|
||||
(define get-str-id-is-playing? str-id-is-playing?)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defbehavior ja-play-spooled-anim process-drawable ((arg0 spool-anim) (arg1 art-joint-anim) (arg2 art-joint-anim) (arg3 (function process-drawable symbol)))
|
||||
(local-vars (v0-59 int) (sv-176 int))
|
||||
(define *hack-pos* 12)
|
||||
(let ((s2-0 arg2)
|
||||
(s1-0 arg3)
|
||||
(gp-0 (new 'stack 'spooler-block arg2 arg3))
|
||||
@@ -1011,7 +1050,7 @@
|
||||
(let* ((f30-0 (* 0.05859375 (-> s5-8 speed)))
|
||||
(f28-0 (+ (-> gp-0 part-audio-start) (/ (the float (+ (-> s5-8 frames num-frames) -1)) f30-0)))
|
||||
)
|
||||
(set! sv-176 (current-str-pos (-> gp-0 sid)))
|
||||
(set! sv-176 (get-current-str-pos (-> gp-0 sid))) ;; modified
|
||||
(set! (-> gp-0 good-time) (-> self clock frame-counter))
|
||||
(until (>= (the float v0-59) f28-0)
|
||||
(if (= (-> self skel root-channel 0) (-> self skel channel))
|
||||
@@ -1059,8 +1098,8 @@
|
||||
(set! (-> gp-0 old-pos) sv-176)
|
||||
(set! (-> gp-0 old-time) (-> self clock frame-counter))
|
||||
(suspend)
|
||||
(let* ((f26-0 (* (- (the float (current-str-pos (-> gp-0 sid))) (-> gp-0 part-audio-start)) f30-0))
|
||||
(f0-16 (if (str-id-is-playing? (the-as int (-> gp-0 sid)))
|
||||
(let* ((f26-0 (* (- (the float (get-current-str-pos (-> gp-0 sid))) (-> gp-0 part-audio-start)) f30-0))
|
||||
(f0-16 (if (get-str-id-is-playing? (the-as int (-> gp-0 sid)))
|
||||
(fmax 0.0 (fmin f26-0 (the float (+ (-> (ja-group) frames num-frames) -1))))
|
||||
(fmax 0.0 (fmin (ja-frame-num 0) (the float (+ (-> (ja-group) frames num-frames) -1))))
|
||||
)
|
||||
@@ -1068,7 +1107,7 @@
|
||||
)
|
||||
(ja-no-eval :num! (seek!) :frame-num f0-16)
|
||||
)
|
||||
(set! v0-59 (current-str-pos (-> gp-0 sid)))
|
||||
(set! v0-59 (get-current-str-pos (-> gp-0 sid)))
|
||||
(set! sv-176 v0-59)
|
||||
)
|
||||
(set! (-> gp-0 part-audio-start) f28-0)
|
||||
|
||||
@@ -5,8 +5,30 @@
|
||||
;; name in dgo: rigid-body
|
||||
;; dgos: GAME, COMMON
|
||||
|
||||
;; og:ignore-form:collide-shape-moving-method-63
|
||||
;; og:ignore-form:collide-shape-moving-method-67
|
||||
(deftype rb-work (structure)
|
||||
((cquery collide-query :inline)
|
||||
(mat-1 matrix :inline :offset 544)
|
||||
(vec-2 vector :inline :offset 608)
|
||||
(vec-5 vector :inline :offset 624)
|
||||
(vec-3 vector :inline :offset 640)
|
||||
(float-4 float :offset 656)
|
||||
(pat-id pat-surface :offset 660)
|
||||
(rbody rigid-body :offset 664)
|
||||
(prim-id int32 :offset 668)
|
||||
(vec-1 vector :inline :offset 672)
|
||||
(quat-1 quaternion :inline)
|
||||
(vec-8 vector :inline :offset 704)
|
||||
(vec-4 vector :inline :offset 720)
|
||||
(vec-6 vector :inline)
|
||||
(vec-7 vector :inline)
|
||||
(vec-9 vector :inline)
|
||||
(float-2 float :offset 784)
|
||||
(float-3 float)
|
||||
(dt float :offset 792)
|
||||
(float-1 float)
|
||||
(cnt int8 :offset 800)
|
||||
)
|
||||
)
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
@@ -311,15 +333,74 @@
|
||||
)
|
||||
(rigid-body-method-13 obj)
|
||||
(if (logtest? (-> obj flags) (rigid-body-flag enable-collision))
|
||||
;; TODO - disabled for now, method isnt decomp'd yet, it sucks
|
||||
;; (collide-shape-moving-method-63 arg0 obj arg1)
|
||||
(collide-shape-moving-method-63 arg0 obj arg1)
|
||||
(rigid-body-method-14 obj arg1)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; ERROR: function was not converted to expressions. Cannot decompile.
|
||||
(defmethod collide-with-all-collide-cache-prims collide-shape-moving ((obj collide-shape-moving) (arg0 matrix) (arg1 collide-query))
|
||||
(rlet ((acc :class vf)
|
||||
(vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
(vf3 :class vf)
|
||||
(vf4 :class vf)
|
||||
(vf5 :class vf)
|
||||
(vf6 :class vf)
|
||||
(vf7 :class vf)
|
||||
(vf8 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(let ((s4-0 *collide-cache*)
|
||||
(s3-0 (-> obj root-prim))
|
||||
(s2-0 1)
|
||||
)
|
||||
(b! (nonzero? (-> s3-0 prim-core prim-type)) cfg-2 :delay (empty-form))
|
||||
(let ((v1-2 s3-0))
|
||||
(set! s3-0 (-> (the-as collide-shape-prim-group v1-2) child 0))
|
||||
(set! s2-0 (the-as int (-> v1-2 specific 0)))
|
||||
)
|
||||
(label cfg-2)
|
||||
(b! #t cfg-13 :delay (nop!))
|
||||
(label cfg-3)
|
||||
(+! s2-0 -1)
|
||||
(let ((v1-4 -1))
|
||||
(b! (!= (-> s3-0 prim-core prim-type) v1-4) cfg-12 :delay (nop!))
|
||||
)
|
||||
(.lvf vf5 (&-> s3-0 local-sphere quad))
|
||||
(.lvf vf1 (&-> arg0 quad 0))
|
||||
(.lvf vf2 (&-> arg0 quad 1))
|
||||
(.lvf vf3 (&-> arg0 quad 2))
|
||||
(.lvf vf4 (&-> arg0 trans quad))
|
||||
(.lvf vf6 (&-> s3-0 prim-core world-sphere quad))
|
||||
(.mul.x.vf acc vf1 vf5)
|
||||
(.add.mul.y.vf acc vf2 vf5 acc)
|
||||
(.add.mul.z.vf acc vf3 vf5 acc)
|
||||
(.add.mul.w.vf vf7 vf4 vf0 acc :mask #b111)
|
||||
(.sub.vf vf8 vf7 vf6 :mask #b111)
|
||||
(.svf (&-> arg1 move-dist quad) vf8)
|
||||
(let ((s1-0 (the-as collide-cache-prim (-> s4-0 prims))))
|
||||
(countdown (s0-0 (-> s4-0 num-prims))
|
||||
(when (logtest? (-> s3-0 prim-core collide-with) (-> s1-0 prim-core collide-as))
|
||||
(if (>= (the-as int (-> s1-0 prim-core prim-type)) 0)
|
||||
(collide-with-collide-cache-prim-mesh s3-0 arg1 s1-0)
|
||||
(collide-with-collide-cache-prim-sphere s3-0 arg1 s1-0)
|
||||
)
|
||||
)
|
||||
(&+! s1-0 48)
|
||||
)
|
||||
)
|
||||
(label cfg-12)
|
||||
(&+! s3-0 80)
|
||||
(label cfg-13)
|
||||
(b! (nonzero? s2-0) cfg-3 :delay (nop!))
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defun transform-rigid-body-prims ((arg0 collide-shape-prim) (arg1 matrix))
|
||||
(rlet ((acc :class vf)
|
||||
@@ -359,7 +440,196 @@
|
||||
)
|
||||
)
|
||||
|
||||
;; ERROR: failed type prop at 118: Could not figure out load: (set! v1 (l.wu v1))
|
||||
(defmethod collide-shape-moving-method-63 collide-shape-moving ((obj collide-shape-moving) (arg0 rigid-body) (arg1 float))
|
||||
(local-vars (s3-0 rigid-body))
|
||||
(with-pp
|
||||
(rlet ((acc :class vf)
|
||||
(Q :class vf)
|
||||
(vf0 :class vf)
|
||||
(vf6 :class vf)
|
||||
(vf7 :class vf)
|
||||
(vf8 :class vf)
|
||||
(vf9 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(let ((s5-0 (new 'stack-no-clear 'rb-work)))
|
||||
(set! (-> s5-0 dt) arg1)
|
||||
(set! (-> s5-0 float-1) 1.0)
|
||||
(set! (-> s5-0 cnt) 0)
|
||||
(until (not (and (< 0.05 (-> s5-0 float-1)) (< (-> s5-0 cnt) (the-as int (-> obj max-iteration-count)))))
|
||||
(set! (-> s5-0 cquery best-dist) -100000000.0)
|
||||
(set! (-> s5-0 cquery best-my-prim) #f)
|
||||
(set! (-> s5-0 cquery num-spheres) (the-as uint #f))
|
||||
(set! (-> s5-0 vec-1 quad) (-> arg0 position quad))
|
||||
(quaternion-copy! (-> s5-0 quat-1) (-> arg0 rotation))
|
||||
(rigid-body-method-14 arg0 (* (-> s5-0 float-1) (-> s5-0 dt)))
|
||||
(mem-copy! (the-as pointer (-> s5-0 mat-1)) (the-as pointer (-> arg0 matrix)) 64)
|
||||
(set! (-> arg0 position quad) (-> s5-0 vec-1 quad))
|
||||
(quaternion-copy! (-> arg0 rotation) (-> s5-0 quat-1))
|
||||
(rigid-body-method-24 arg0)
|
||||
(transform-rigid-body-prims (-> obj root-prim) (-> arg0 matrix))
|
||||
(collide-with-all-collide-cache-prims obj (-> s5-0 mat-1) (-> s5-0 cquery))
|
||||
(let ((f30-0 (-> s5-0 cquery best-dist)))
|
||||
(b! (>= f30-0 0.0) cfg-3 :delay #f)
|
||||
(rigid-body-method-14 arg0 (* (-> s5-0 float-1) (-> s5-0 dt)))
|
||||
(rigid-body-method-13 arg0)
|
||||
(transform-rigid-body-prims (-> obj root-prim) (-> arg0 matrix))
|
||||
(set! (-> s5-0 float-1) 0.0)
|
||||
(b! #t cfg-44 :delay (nop!))
|
||||
(label cfg-3)
|
||||
(update-from-step-size *touching-list* f30-0)
|
||||
(rigid-body-method-14 arg0 (* (-> s5-0 float-1) (-> s5-0 dt) f30-0))
|
||||
)
|
||||
(rigid-body-method-13 arg0)
|
||||
(transform-rigid-body-prims (-> obj root-prim) (-> arg0 matrix))
|
||||
(mem-copy! (the-as pointer (-> s5-0 mat-1)) (the-as pointer (-> arg0 matrix)) 64)
|
||||
(set! s3-0 (the-as rigid-body #f))
|
||||
(b! (not (-> s5-0 cquery num-spheres)) cfg-12 :delay (empty-form))
|
||||
(let ((a0-20 (-> (the-as collide-shape-prim (-> s5-0 cquery num-spheres)) cshape process)))
|
||||
(b! (zero? (-> a0-20 rbody)) cfg-12 :delay (empty-form))
|
||||
(set! s3-0 (-> a0-20 rbody state))
|
||||
(b! (not (logtest? (-> s3-0 flags) (rigid-body-flag active))) cfg-11 :delay (nop!))
|
||||
(b! (logtest? (-> s3-0 flags) (rigid-body-flag enable-physics)) cfg-10 :delay (empty-form))
|
||||
(send-event a0-20 'enable-physics)
|
||||
)
|
||||
(label cfg-10)
|
||||
(b! #t cfg-12 :delay (nop!))
|
||||
(label cfg-11)
|
||||
(set! s3-0 (the-as rigid-body #f))
|
||||
(label cfg-12)
|
||||
(let ((v1-37 (-> s5-0 cquery best-my-prim)))
|
||||
(.lvf vf7 (&-> (-> s5-0 cquery) best-other-tri intersect quad))
|
||||
(.lvf vf6 (&-> v1-37 prim-core world-sphere quad))
|
||||
(.sub.vf vf8 vf6 vf7)
|
||||
(.mul.vf vf9 vf8 vf8 :mask #b111)
|
||||
(.mul.x.vf acc vf0 vf9 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf9 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf9 vf0 vf9 acc :mask #b1000)
|
||||
(.isqrt.vf Q vf0 vf9 :fsf #b11 :ftf #b11)
|
||||
(.mov.vf vf8 vf0 :mask #b1000)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf8 vf8 Q :mask #b111)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.svf (&-> s5-0 vec-5 quad) vf8)
|
||||
(.svf (&-> s5-0 vec-2 quad) vf7)
|
||||
(set! (-> s5-0 prim-id) (the-as int (-> v1-37 prim-id)))
|
||||
)
|
||||
(rigid-body-method-22 arg0 (-> s5-0 vec-2) (-> s5-0 vec-3))
|
||||
(b! (not s3-0) cfg-14 :delay (empty-form))
|
||||
(rigid-body-method-13 s3-0)
|
||||
(rigid-body-method-22 s3-0 (-> s5-0 vec-2) (-> s5-0 vec-4))
|
||||
(vector-! (-> s5-0 vec-3) (-> s5-0 vec-3) (-> s5-0 vec-4))
|
||||
(label cfg-14)
|
||||
(set! (-> s5-0 float-4) 0.0)
|
||||
(set! (-> s5-0 float-2) (+ -409.6 (vector-dot (-> s5-0 vec-3) (-> s5-0 vec-5))))
|
||||
(set! (-> s5-0 float-3) 0.0)
|
||||
(b! (>= (-> s5-0 float-2) 0.0) cfg-39)
|
||||
(vector-! (-> s5-0 vec-6) (-> s5-0 vec-2) (-> arg0 position))
|
||||
(vector-cross! (-> s5-0 vec-7) (-> s5-0 vec-6) (-> s5-0 vec-5))
|
||||
(vector-rotate*! (-> s5-0 vec-7) (-> s5-0 vec-7) (-> arg0 inv-i-world))
|
||||
(vector-cross! (-> s5-0 vec-7) (-> s5-0 vec-7) (-> s5-0 vec-6))
|
||||
(set! (-> s5-0 float-3) (+ (-> arg0 info inv-mass) (vector-dot (-> s5-0 vec-5) (-> s5-0 vec-7))))
|
||||
(let ((f30-1 (-> arg0 info bounce-factor)))
|
||||
(cond
|
||||
(s3-0
|
||||
(vector-! (-> s5-0 vec-6) (-> s5-0 vec-2) (-> s3-0 position))
|
||||
(vector-cross! (-> s5-0 vec-7) (-> s5-0 vec-6) (-> s5-0 vec-5))
|
||||
(vector-rotate*! (-> s5-0 vec-7) (-> s5-0 vec-7) (-> s3-0 inv-i-world))
|
||||
(vector-cross! (-> s5-0 vec-7) (-> s5-0 vec-7) (-> s5-0 vec-6))
|
||||
(+! (-> s5-0 float-3) (+ (-> s3-0 info inv-mass) (vector-dot (-> s5-0 vec-5) (-> s5-0 vec-7))))
|
||||
(set! f30-1 (fmax
|
||||
(fmax f30-1 (-> s3-0 info bounce-factor))
|
||||
(* (-> arg0 info bounce-mult-factor) (-> s3-0 info bounce-mult-factor))
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
)
|
||||
)
|
||||
(set! (-> s5-0 float-4) (* (+ 1.0 f30-1) (/ (- (-> s5-0 float-2)) (-> s5-0 float-3))))
|
||||
)
|
||||
(vector-float*! (-> s5-0 vec-8) (-> s5-0 vec-5) (-> s5-0 float-4))
|
||||
(let ((f30-2 (-> arg0 info mass)))
|
||||
(if s3-0
|
||||
(set! f30-2 (fmin f30-2 (-> s3-0 info mass)))
|
||||
)
|
||||
(vector+float*! (-> s5-0 vec-9) (-> s5-0 vec-3) (-> s5-0 vec-5) (- (-> s5-0 float-2)))
|
||||
(vector-normalize! (-> s5-0 vec-9) 1.0)
|
||||
(let ((f0-31 (* -1.0 (fmin
|
||||
(* (vector-dot (-> s5-0 vec-9) (-> s5-0 vec-3)) f30-2)
|
||||
(* (-> arg0 info friction-factor) (-> s5-0 float-4))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector+float*! (-> s5-0 vec-8) (-> s5-0 vec-8) (-> s5-0 vec-9) f0-31)
|
||||
)
|
||||
)
|
||||
(rigid-body-method-18 arg0 (-> s5-0 vec-2) (-> s5-0 vec-8))
|
||||
(when s3-0
|
||||
(vector-float*! (-> s5-0 vec-8) (-> s5-0 vec-8) -1.0)
|
||||
(rigid-body-method-18 s3-0 (-> s5-0 vec-2) (-> s5-0 vec-8))
|
||||
)
|
||||
(rigid-body-method-12 arg0 1.0)
|
||||
(rigid-body-method-13 arg0)
|
||||
(let ((f30-3 (-> s5-0 cquery best-dist)))
|
||||
(when (< f30-3 0.0001)
|
||||
(vector+float*! (-> arg0 position) (-> arg0 position) (-> s5-0 vec-5) 40.96)
|
||||
(rigid-body-method-24 arg0)
|
||||
)
|
||||
(set! (-> s5-0 float-1) (- (-> s5-0 float-1) (* f30-3 (-> s5-0 float-1))))
|
||||
)
|
||||
(set! (-> s5-0 pat-id) (-> s5-0 cquery best-other-tri pat))
|
||||
(let ((v1-103 pp))
|
||||
(let ((a0-49 (the-as object (-> s5-0 cquery num-spheres))))
|
||||
(if (the-as uint a0-49)
|
||||
(set! v1-103 (-> (the-as collide-shape-prim-mesh a0-49) cshape process))
|
||||
)
|
||||
)
|
||||
(set! (-> s5-0 rbody) s3-0)
|
||||
(send-event (-> obj process) 'impact-impulse :from v1-103 (-> s5-0 vec-2))
|
||||
)
|
||||
(b! (not s3-0) cfg-32 :delay (empty-form))
|
||||
(rigid-body-method-12 s3-0 1.0)
|
||||
(rigid-body-method-13 s3-0)
|
||||
(let ((s2-0 (-> (the-as collide-shape-prim-mesh (-> s5-0 cquery num-spheres)) cshape)))
|
||||
(transform-rigid-body-prims (-> s2-0 root-prim) (-> s3-0 matrix))
|
||||
(vector-float*! (-> s5-0 vec-5) (-> s5-0 vec-5) -1.0)
|
||||
(vector-float*! (-> s5-0 vec-3) (-> s5-0 vec-3) -1.0)
|
||||
(set! (-> s5-0 rbody) arg0)
|
||||
(send-event (-> s2-0 process) 'impact-impulse :from (-> obj process) (-> s5-0 vec-2))
|
||||
)
|
||||
(label cfg-32)
|
||||
(+! (-> s5-0 cnt) 1)
|
||||
)
|
||||
(b! #t cfg-42 :delay (nop!))
|
||||
(label cfg-39)
|
||||
(b! (not s3-0) cfg-41 :delay (empty-form))
|
||||
(set! (-> arg0 blocked-by) (-> (the-as collide-shape-prim-mesh (-> s5-0 cquery num-spheres)) cshape process))
|
||||
0
|
||||
(label cfg-41)
|
||||
(vector+float*! (-> arg0 position) (-> arg0 position) (-> s5-0 vec-5) 40.96)
|
||||
(rigid-body-method-24 arg0)
|
||||
0
|
||||
(label cfg-42)
|
||||
(when (< 0.0 (-> s5-0 float-1))
|
||||
(rigid-body-method-14 arg0 (* (-> s5-0 float-1) (-> s5-0 dt)))
|
||||
(rigid-body-method-13 arg0)
|
||||
(transform-rigid-body-prims (-> obj root-prim) (-> arg0 matrix))
|
||||
(set! (-> s5-0 float-1) 0.0)
|
||||
)
|
||||
(label cfg-44)
|
||||
(let ((f0-47 (* (- 1.0 (-> s5-0 float-1)) (-> s5-0 dt))))
|
||||
(set! (-> arg0 time-remaining) (- (-> arg0 time-remaining) f0-47))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod rigid-body-method-15 rigid-body ((obj rigid-body) (arg0 collide-shape-moving) (arg1 float))
|
||||
(local-vars
|
||||
|
||||
@@ -870,10 +870,6 @@
|
||||
(defstate wait (scene-player)
|
||||
:virtual #t
|
||||
:enter (behavior ((arg0 symbol))
|
||||
;; HACK TO NOT GET STUCK WAITING FOR SCENE TO LOAD
|
||||
;; progress from cutscenes however is handled by the command-list on the load-state cleanup
|
||||
(go-virtual release)
|
||||
;; END HACK - REMOVE ME EVENTUALLY
|
||||
(set! (-> self state-time) (-> self clock frame-counter))
|
||||
(when (or (-> self scene) (-> self preload-continue))
|
||||
(let ((gp-0 (scene-decode-continue (the-as basic (if (-> self scene)
|
||||
@@ -996,7 +992,8 @@
|
||||
(!= (-> *setting-control* user-current movie) (process->ppointer self))
|
||||
)
|
||||
*progress-process*
|
||||
(!= (get-status *gui-control* (the-as sound-id (-> self gui-id))) 3)
|
||||
;; modified
|
||||
(#if STREAM_PLAY_HACK #f (!= (get-status *gui-control* (the-as sound-id (-> self gui-id))) 3))
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
@@ -1073,7 +1070,7 @@
|
||||
)
|
||||
(v1-167 (get-status *gui-control* (the-as sound-id a1-26)))
|
||||
)
|
||||
(not (or (= v1-167 (gui-status ready)) (= v1-167 (gui-status active))))
|
||||
(#if STREAM_PLAY_HACK #f (not (or (= v1-167 (gui-status ready)) (= v1-167 (gui-status active)))))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -2392,7 +2392,7 @@
|
||||
)
|
||||
(let* ((s5-0 (-> arg0 param 1))
|
||||
(gp-0 (if (type? s5-0 function)
|
||||
(the-as (function process vector cspace) s5-0)
|
||||
(the-as (function process vector cspace none) s5-0)
|
||||
)
|
||||
)
|
||||
(s3-0 (command-get-process (-> arg0 param 2) (the-as process #f)))
|
||||
@@ -2442,6 +2442,7 @@
|
||||
(-> arg0 trans)
|
||||
)
|
||||
)
|
||||
(the-as cspace s3-1)
|
||||
)
|
||||
(format 0 "ERROR: SCRIPT: joint-eval: unknown entity ~A in:~%~T~A~%" (-> arg0 param 2) (-> arg0 expr))
|
||||
)
|
||||
|
||||
+52
-49
@@ -859,6 +859,14 @@
|
||||
"TOMB"
|
||||
"TWEAKVAL")
|
||||
|
||||
;; intro cutscenes
|
||||
(copy-strs "INSHUT" "INVORTEX" "INCSQUAR" "INPRISON")
|
||||
|
||||
;; jak ambient
|
||||
(copy-strs "JAA1" "JAA2" "JAA3" "JAA4" "JAA5" "JAA6")
|
||||
|
||||
(copy-vag-files "ENG")
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Text
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
@@ -2521,33 +2529,29 @@
|
||||
;; "lbrnermk"
|
||||
;; )
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;; LCGUARD
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
;; LCGUARD
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; (cgo "LCGUARD.DGO" "lcguard.gd")
|
||||
(cgo "LCGUARD.DGO" "lcguard.gd")
|
||||
|
||||
;; (copy-textures 2691)
|
||||
(copy-textures 2691)
|
||||
|
||||
;; (copy-gos
|
||||
;; "crimson-guard-highres-ag"
|
||||
;; "lcguard"
|
||||
;; )
|
||||
(copy-gos
|
||||
"lcguard"
|
||||
)
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;; LCITYLOW
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
;; LCITYLOW
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; (cgo "LCITYLOW.DGO" "lcitylow.gd")
|
||||
(cgo "LCITYLOW.DGO" "lcitylow.gd")
|
||||
|
||||
;; (copy-textures 2755 2756 3388)
|
||||
(copy-textures 2755 2756 3388)
|
||||
|
||||
;; (copy-gos
|
||||
;; "barons-ship-lores-ag"
|
||||
;; "searchlight-ag"
|
||||
;; "pal-windmill-ag"
|
||||
;; "lcitylow"
|
||||
;; )
|
||||
(copy-gos
|
||||
"lcitylow"
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
;; LDJAKBRN
|
||||
@@ -2715,21 +2719,19 @@
|
||||
;; "lhipout"
|
||||
;; )
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;; LINTCSTB
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
;; LINTCSTB
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; (cgo "LINTCSTB.DGO" "lintcstb.gd")
|
||||
(cgo "LINTCSTB.DGO" "lintcstb.gd")
|
||||
|
||||
;; (copy-textures 2752 2754 3243)
|
||||
(copy-textures 2752 2754 3243)
|
||||
|
||||
;; (copy-gos
|
||||
;; "keira-highres-ag"
|
||||
;; "samos-highres-ag"
|
||||
;; "rift-rider-break-ag"
|
||||
;; "rift-rider-ag"
|
||||
;; "lintcstb"
|
||||
;; )
|
||||
(copy-gos
|
||||
"rift-rider-break-ag"
|
||||
"rift-rider-ag"
|
||||
"lintcstb"
|
||||
)
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;; LJAKDAX
|
||||
@@ -3861,7 +3863,7 @@
|
||||
"ruins-vis"
|
||||
)
|
||||
|
||||
(copy-strs "RUB1" "RUBW1" "RUBW2" "RUBW3" "RUBW4" "RUBW5" "RUBW6" "RUDPA1" "RUPC1" "RUPC2")
|
||||
(copy-strs "RUB1" "RUBW1" "RUBW2" "RUBW3" "RUBW4" "RUBW5" "RUBW6" "RUDPA1" "RUPC1" "RUPC2" "RUTVICTO")
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;; SAG
|
||||
@@ -4257,26 +4259,27 @@
|
||||
"throne-vis"
|
||||
)
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;; TITLE
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
;; TITLE
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; (cgo "TITLE.DGO" "title.gd")
|
||||
(cgo "TITLE.DGO" "title.gd")
|
||||
|
||||
;; (goal-src-sequence
|
||||
;; ""
|
||||
;; :deps ("$OUT/obj/los-control.o")
|
||||
;; "levels/title/title-obs.gc"
|
||||
;; )
|
||||
(goal-src-sequence
|
||||
""
|
||||
:deps ("$OUT/obj/los-control.o")
|
||||
"levels/title/title-obs.gc"
|
||||
)
|
||||
|
||||
;; (copy-textures 3091 3090)
|
||||
(copy-textures 3091 3090)
|
||||
|
||||
;; (copy-gos
|
||||
;; "daxter-highres-ag"
|
||||
;; "jak-logo-ag"
|
||||
;; "jak-stand-ag"
|
||||
;; "title"
|
||||
;; )
|
||||
(copy-gos
|
||||
"jak-logo-ag"
|
||||
"jak-stand-ag"
|
||||
"title"
|
||||
)
|
||||
|
||||
(copy-strs "DESCREEN" "TIDINTRO")
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;; TOA
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x64 :param1 #x64)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x64 :param1 #x64)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
|
||||
(define *crimson-guard-fact* (new 'static 'fact-info-enemy-defaults :idle-distance (meters 200)))
|
||||
|
||||
(defskelgroup skel-crimson-guard-level crimson-guard 0 4
|
||||
((1 (meters 20)) (2 (meters 999999)))
|
||||
(defskelgroup skel-crimson-guard-level crimson-guard crimson-guard-lod0-jg crimson-guard-idle-ja
|
||||
((crimson-guard-lod0-mg (meters 20)) (crimson-guard-lod2-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 5)
|
||||
:shadow 3
|
||||
:shadow crimson-guard-shadow-mg
|
||||
:origin-joint-index 3
|
||||
)
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
@@ -201,7 +201,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
@@ -313,7 +313,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
@@ -425,7 +425,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
@@ -537,7 +537,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
@@ -170,10 +170,10 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 8
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x5)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x5)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x5)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x5)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
@@ -249,7 +249,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
@@ -95,22 +95,22 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 20
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x4 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x4 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x4 :param1 #x8)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x4 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x7 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x4 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x7 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x4 :param1 #x8)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
@@ -392,10 +392,13 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defskelgroup skel-sew-gunturret sew-gunturret 0 2 ((1 (meters 999999))) :bounds (static-spherem 0 0 0 5))
|
||||
(defskelgroup skel-sew-gunturret sew-gunturret sew-gunturret-lod0-jg sew-gunturret-idle-ja
|
||||
((sew-gunturret-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 5)
|
||||
)
|
||||
|
||||
(defskelgroup skel-sew-gunturret-explode sew-gunturret 4 6
|
||||
((5 (meters 999999)))
|
||||
(defskelgroup skel-sew-gunturret-explode sew-gunturret sew-gunturret-explode-lod0-jg sew-gunturret-explode-idle-ja
|
||||
((sew-gunturret-explode-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 15)
|
||||
)
|
||||
|
||||
@@ -482,7 +485,7 @@
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x2 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x2 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
@@ -1088,10 +1091,13 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
(defskelgroup skel-pal-gun-turret pal-gun-turret 0 2 ((1 (meters 999999))) :bounds (static-spherem 0 0 0 4))
|
||||
(defskelgroup skel-pal-gun-turret pal-gun-turret pal-gun-turret-lod0-jg pal-gun-turret-idle-ja
|
||||
((pal-gun-turret-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4)
|
||||
)
|
||||
|
||||
(defskelgroup skel-pal-gun-turret-explode pal-gun-turret 4 6
|
||||
((5 (meters 999999)))
|
||||
(defskelgroup skel-pal-gun-turret-explode pal-gun-turret pal-gun-turret-explode-lod0-jg pal-gun-turret-explode-idle-ja
|
||||
((pal-gun-turret-explode-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 15)
|
||||
)
|
||||
|
||||
@@ -1105,7 +1111,7 @@
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x2 :param0 #x2 :param1 #x2)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x2 :param0 #x2 :param1 #x2)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
@@ -416,21 +416,21 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 16
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x3 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #xf :param1 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x2 :param1 #x4)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #xa :param1 #x14)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x2)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #xf :param1 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x3 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x7 :param0 #xf :param1 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x2 :param1 #x4)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x9 :param0 #xa :param1 #x14)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x2)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x9 :param0 #xf :param1 #x1e)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
@@ -1445,8 +1445,6 @@
|
||||
(the-as float s5-2)
|
||||
)
|
||||
)
|
||||
(set! (-> obj minimap)
|
||||
(add-icon! *minimap* obj (the-as uint 70) (the-as int #f) (the-as vector #t) 0)
|
||||
)
|
||||
(set! (-> obj minimap) (add-icon! *minimap* obj (the-as uint 70) (the-as int #f) (the-as vector #t) 0))
|
||||
(none)
|
||||
)
|
||||
|
||||
@@ -136,41 +136,41 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 36
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x3c)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x1e :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x3c)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x3c)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x1e :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x3c)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
|
||||
@@ -178,7 +178,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
@@ -241,7 +241,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
@@ -468,7 +468,7 @@
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
@@ -7,3 +7,6 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(defun set-jakb-prison-texture-morph! ((a int))
|
||||
(none)
|
||||
)
|
||||
@@ -38,10 +38,10 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 8
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x2 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x2)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x2 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x2)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(defskelgroup skel-gator amphibian 0 -1
|
||||
((1 (meters 20)) (2 (meters 999999)))
|
||||
(defskelgroup skel-gator amphibian amphibian-lod0-jg -1
|
||||
((amphibian-lod0-mg (meters 20)) (amphibian-lod1-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 1 0 5.5)
|
||||
)
|
||||
|
||||
@@ -42,8 +42,8 @@
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #xd :param0 #x64 :param1 #x64)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #xd :param0 #x64 :param1 #x64)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
|
||||
@@ -1457,8 +1457,8 @@ This commonly includes things such as:
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
|
||||
@@ -152,10 +152,10 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 8
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x3 :param0 #x1 :param1 #x4)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x4)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x3 :param0 #x1 :param1 #x4)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x4)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -62,5 +62,8 @@ if (WIN32)
|
||||
endif ()
|
||||
|
||||
add_executable(goalc main.cpp)
|
||||
target_link_libraries(goalc common Zydis compiler sqlite3 SQLiteCpp)
|
||||
add_executable(goalc-simple simple_main.cpp)
|
||||
|
||||
target_link_libraries(goalc common Zydis compiler sqlite3 SQLiteCpp)
|
||||
target_link_libraries(goalc-simple common Zydis compiler sqlite3 SQLiteCpp)
|
||||
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
#include "common/log/log.h"
|
||||
#include "common/util/FileUtil.h"
|
||||
#include "common/versions.h"
|
||||
|
||||
#include "goalc/compiler/Compiler.h"
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
// logging
|
||||
lg::set_stdout_level(lg::level::info);
|
||||
lg::set_flush_level(lg::level::info);
|
||||
lg::initialize();
|
||||
|
||||
// game version
|
||||
std::string game = "jak1";
|
||||
if (argc > 1) {
|
||||
game = argv[1];
|
||||
}
|
||||
GameVersion game_version = game_name_to_version(game);
|
||||
|
||||
// path
|
||||
if (!file_util::setup_project_path(std::nullopt)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
lg::info("OpenGOAL Compiler {}.{}", versions::GOAL_VERSION_MAJOR, versions::GOAL_VERSION_MINOR);
|
||||
|
||||
std::unique_ptr<Compiler> compiler;
|
||||
ReplStatus status = ReplStatus::OK;
|
||||
try {
|
||||
compiler =
|
||||
std::make_unique<Compiler>(game_version, "", std::make_unique<REPL::Wrapper>(game_version));
|
||||
while (status != ReplStatus::WANT_EXIT) {
|
||||
if (status == ReplStatus::WANT_RELOAD) {
|
||||
lg::info("Reloading compiler...");
|
||||
if (compiler) {
|
||||
compiler->save_repl_history();
|
||||
}
|
||||
compiler = std::make_unique<Compiler>(game_version, "",
|
||||
std::make_unique<REPL::Wrapper>(game_version));
|
||||
status = ReplStatus::OK;
|
||||
}
|
||||
std::string input_from_stdin = compiler->get_repl_input();
|
||||
if (!input_from_stdin.empty()) {
|
||||
status = compiler->handle_repl_string(input_from_stdin);
|
||||
}
|
||||
}
|
||||
} catch (std::exception& e) {
|
||||
lg::error("Compiler Fatal Error: {}", e.what());
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
+1
-5
@@ -66,7 +66,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x3 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x3 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
@@ -1437,7 +1437,3 @@
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -67,7 +67,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
+2
-2
@@ -181,7 +181,7 @@
|
||||
;; definition of type collide-prim-core
|
||||
(deftype collide-prim-core (structure)
|
||||
((world-sphere vector :inline :offset-assert 0)
|
||||
(collide-as collide-spec :offset-assert 16)
|
||||
(collide-as collide-spec :offset 16)
|
||||
(collide-with collide-spec :offset-assert 20)
|
||||
(action collide-action :offset-assert 24)
|
||||
(prim-type prim-type :offset-assert 28)
|
||||
@@ -1628,7 +1628,7 @@
|
||||
(try-snap-to-surface (_type_ vector float float float) symbol 64)
|
||||
(fill-and-try-snap-to-surface (_type_ vector float float float collide-query) symbol 65)
|
||||
(step-collison! (_type_ vector vector float int) float 66)
|
||||
(collide-shape-moving-method-67 () none 67)
|
||||
(collide-with-all-collide-cache-prims (_type_ matrix collide-query) none 67)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
+12
-14
@@ -3,10 +3,10 @@
|
||||
|
||||
;; definition of type idle-control-frame
|
||||
(deftype idle-control-frame (uint32)
|
||||
((command uint8 :offset 0 :size 8)
|
||||
(anim uint8 :offset 8 :size 8)
|
||||
(param0 uint8 :offset 16 :size 8)
|
||||
(param1 uint8 :offset 24 :size 8)
|
||||
((command ic-cmd :offset 0 :size 8)
|
||||
(anim uint8 :offset 8 :size 8)
|
||||
(param0 uint8 :offset 16 :size 8)
|
||||
(param1 uint8 :offset 24 :size 8)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x4
|
||||
@@ -28,13 +28,13 @@
|
||||
(v1-4 (-> obj command))
|
||||
)
|
||||
(t9-1 a0-2 a1-1 a2-1 (cond
|
||||
((= v1-4 1)
|
||||
((= v1-4 (ic-cmd play))
|
||||
"play"
|
||||
)
|
||||
((= v1-4 2)
|
||||
((= v1-4 (ic-cmd push))
|
||||
"push"
|
||||
)
|
||||
((zero? v1-4)
|
||||
((= v1-4 (ic-cmd restart))
|
||||
"restart"
|
||||
)
|
||||
(else
|
||||
@@ -106,11 +106,9 @@
|
||||
(let ((s5-0 self))
|
||||
(set! self arg0)
|
||||
(loop
|
||||
(let* ((s4-0 (-> obj current 0))
|
||||
(v1-4 (-> s4-0 command))
|
||||
)
|
||||
(cond
|
||||
((= v1-4 1)
|
||||
(let ((s4-0 (-> obj current 0)))
|
||||
(case (-> s4-0 command)
|
||||
(((ic-cmd play))
|
||||
(if (< (-> s4-0 anim) 0)
|
||||
(return #f)
|
||||
)
|
||||
@@ -157,14 +155,14 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
((= v1-4 2)
|
||||
(((ic-cmd push))
|
||||
(ja-channel-push! 1 (the-as time-frame (-> s4-0 param0)))
|
||||
(set! (-> obj current) (&-> (-> obj current) 1))
|
||||
(set! (-> obj counter) 0)
|
||||
(set! (-> obj target) 0)
|
||||
0
|
||||
)
|
||||
((zero? v1-4)
|
||||
(((ic-cmd restart))
|
||||
(set! (-> obj current) (-> obj anim))
|
||||
(set! (-> obj counter) 0)
|
||||
(set! (-> obj target) 0)
|
||||
|
||||
+238
-936
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -216,7 +216,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
Generated
Vendored
+2
-2
@@ -45,8 +45,8 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x64 :param1 #x64)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x64 :param1 #x64)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
|
||||
+1
-1
@@ -124,7 +124,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
Generated
Vendored
+5
-5
@@ -137,7 +137,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
@@ -251,7 +251,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
@@ -365,7 +365,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
@@ -479,7 +479,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
@@ -593,7 +593,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
+4
-4
@@ -229,10 +229,10 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 8
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x5)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x5)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x5)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x5)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
Generated
Vendored
+1
-1
@@ -331,7 +331,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
Generated
Vendored
+1
-1
@@ -135,7 +135,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
Generated
Vendored
+16
-16
@@ -130,22 +130,22 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 20
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x4 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x4 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x4 :param1 #x8)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x4 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x7 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x4 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x7 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x4 :param1 #x8)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
+2
-2
@@ -554,7 +554,7 @@
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x2 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x2 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
@@ -1209,7 +1209,7 @@
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x2 :param0 #x2 :param1 #x2)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x2 :param0 #x2 :param1 #x2)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
+15
-15
@@ -450,21 +450,21 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 16
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x3 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #xf :param1 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x2 :param1 #x4)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #xa :param1 #x14)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x2)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #xf :param1 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x3 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x7 :param0 #xf :param1 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x2 :param1 #x4)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x9 :param0 #xa :param1 #x14)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x2)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x9 :param0 #xf :param1 #x1e)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
|
||||
+35
-35
@@ -197,41 +197,41 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 36
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x3c)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x1e :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x3c)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x3c)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x1e :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x3c)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
|
||||
+1
-1
@@ -233,7 +233,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
+1
-1
@@ -122,7 +122,7 @@
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
+1
-1
@@ -295,7 +295,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
+1
-1
@@ -521,7 +521,7 @@
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
+4
-4
@@ -47,10 +47,10 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 8
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x2 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x2)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x2 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x2)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
+1
-1
@@ -90,7 +90,7 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
+2
-2
@@ -56,8 +56,8 @@
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #xd :param0 #x64 :param1 #x64)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #xd :param0 #x64 :param1 #x64)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
|
||||
+2
-2
@@ -1694,8 +1694,8 @@ This commonly includes things such as:
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
|
||||
+4
-4
@@ -408,10 +408,10 @@
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 8
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x3 :param0 #x1 :param1 #x4)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x4)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x3 :param0 #x1 :param1 #x4)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd push) :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command (ic-cmd play) :anim #x4 :param0 #x1 :param1 #x4)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
|
||||
+1564
File diff suppressed because it is too large
Load Diff
@@ -61,6 +61,7 @@
|
||||
"DGO/STD.DGO",
|
||||
"DGO/STR.DGO",
|
||||
"DGO/THR.DGO",
|
||||
"DGO/TITLE.DGO",
|
||||
"DGO/TOA.DGO",
|
||||
"DGO/TOB.DGO",
|
||||
"DGO/TOC.DGO",
|
||||
|
||||
Reference in New Issue
Block a user