コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
あまさとしおん ◆mzDKTVUAtwqE
2024/7/22 16:28
質問
#プチコン4 DEFからのGOSUB
3号だとGOSUB "1:@ほげほげ"のようにすると使えたのですが、4では未定義ラベルエラーになります。回避方法はないのでしょうか

コメント

アバター
あまさとしおん 2024/7/22 16:32 ◆mzDKTVUAtwqE
少なくともこの方法がダメというのは前から言われているようです
参考 https://x.com/omusubi_p/status/1133348369546399745 ほか
困ったな
アバター
あまさとしおん 2024/7/22 16:34 ◆mzDKTVUAtwqE
PRGEDIT系の命令を使ってサブルーチンをDEF〜ENDに無理やり書き換える、という方法しかないのかなぁ
アバター
あまさとしおん 2024/7/22 16:39 ◆mzDKTVUAtwqE
やりたいことは(容量消費を減らすため)漢字ライブラリのデータを添付するのではなく本家プロジェクトから直接読みだして使うということなので、サブルーチンをDEFに置き換えたプログラムを添付することはできず、PRGEDITによる自動書き換え案が最有力候補
アバター
あまさとしおん 2024/7/22 20:56 ◆mzDKTVUAtwqE
フォントデータの読み出しに関しては、そもそもDEFを「GOSUBするラベル名を返す関数」に書き換える

つまり
FONTSELECT フォント名 を
GOSUB FONTSELECT(フォント名) にする
という奇抜な方法で対応しました。
(しかしFONTSELECTを実行しているプログラム自体がDEFだったので連鎖的にそのDEFまでサブルーチンに書き換える羽目に…幸いにも当該DEFはローカル変数を1個しか使っていないので置き換えでどうにかなりました)
アバター
おつけもの 2024/7/23 2:03 ◆WmpvEwDiedDb
DEFの中で呼ぶとDEFのなかからラベルを探そうとするのが問題っぽいでしょうか?
CHKLABELで「グローバルラベルを検索」なんて文言もあるし、そっちのほうをみる方法があればいけそうな気がするのですが…(すみません、解決してません)
アバター
あまさとしおん 2024/7/23 18:21 ◆mzDKTVUAtwqE
GOSUB "1:@ほげほげ"のやり方(スロット指定)の時点でDEF内かどうか無関係になるので、それが通らない以上は回避する方法はないみたいです

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -