monolithic kernel

HSPTVAPP betaを使ってみる

HSPTVのランキング機能を通常のアプリから利用できるHSPTVAPPのbetaバージョンが公開されました。HSPTVAPPを利用すると、通常のアプリからもHSPTVと共通のランキングを利用できるので、HSPをインストールしていないユーザーにもアプリで遊んでもらいやすくなります。

今回は、HSPTVAPPを組み込んでみたのでその方法を紹介します。ただし、公式に従って hsptv_up を使うと容量が膨らんでしまうので、非公式な使い方をしています。将来的に動かなくなる可能性がありますので、あらかじめご了承ください。

私は、HSPTV_STANDALONE という定数がある時は通常のアプリとして振る舞い、ない時はHSPTVのプログラムとして振る舞うようなヘッダファイルを用意しています。このヘッダファイルには hsptv_up の定義は含めておらず、内部的に利用している hsptv_send を直接利用することを想定しています。

スタートアップコードは別ファイルに分離しておき、#addition を使ってファイルが存在する時のみ自動で読み込むようにします。今回初めて #addition が便利だなと思いました。

#ifndef MYHSPTV_AS_INCLUDED
#define global MYHSPTV_AS_INCLUDED

#define global HSPTV_RANK_MAX 30

#ifdef HSPTV_STANDALONE
# addition "startupcode.hsp"
# uselib "hsptvapp.dll"
# func hsptv_start hsptv_start $202
# func hsptv_send hsptv_send $202
# func hsptv_setini hsptv_setini $202
# func hsptv_getini hsptv_getini $202
# func hsptv_saveini hsptv_saveini $202
# ifdef HSPTV_STARTUP_CODE
    hsptv_start HSPTV_STARTUP_CODE
# endif
#else
# runtime "hsptv"
# regcmd 18
# cmd hsptv_send $00
#endif

#endif
#define global HSPTV_STARTUP_CODE "..."

あとは、アプリ本体でmyhsptv.asを #include し、hsptv_send を使ってランキングを操作すればOKです。簡単ですね。もっとも、本格的に使うには名前入力などのUIを追加する必要がありますが。

去年のコンテスト応募作品であるまっすぐをHSPTVAPP対応にしてみました (ただし、名前はguestのみ) ので、参考にしてみてください。