〜 スクリプト 〜
PVAL構造体が使えない

HSP2ではmref命令を用いて変数の情報が詰まったPVAL構造体にアクセスすることができましたが、
HSP3からはmref命令でPVAL構造体にアクセスできなくなりました。
しかし、コレはPVAL構造体がなくなったわけでも、PVAL構造体にアクセスできなくなったわけではありません。
単純にmref命令を用いて直接アクセスできなくなったというだけのことです。
mref命令のPVAL構造リソースの代わりに追加されたHSPCTX構造体と中にPVAL構造体のアドレスが入っており、
そのアドレスの先を見ることでPVAL構造体へアクセスすることができるようになっています。
このようなわかりにくい・アクセスしにくい形に変わったのは、
#deffunc命令などのユーザー定義命令のパラメータ仕様変更と深い関係があると思います。
HSP2は数値定数以外の文字列定数と変数は先頭2つまでしか設定できない仕様だったので、
1024が1つ目、1025が2つ目のパラメータと決め打ちできましたが、
HSP3から「パラメータ数が最大8」の制限が撤廃され、
また、何番目のパラメータでも文字列定数や変数が指定可能になり、1024が1つめで…とはできなくなったわけです。
そんなこんなで変更となったのは仕方ないとして、じゃあ具体的にどうアクセスするのか?
それについてはTIPSにて説明してますので、そちらを参照してください。