comparison scn2k/scn2k_grp.cc @ 26:f45da03ca631

* Corrected --disable-vorbis in configure.ac * Added sound configuration * Added misc functions
author thib
date Sun, 01 Mar 2009 19:08:02 +0000
parents 824b89018ea8
children 01aa5ddf7dc8
comparison
equal deleted inserted replaced
25:2110e0cf64ac 26:f45da03ca631
1739 } 1739 }
1740 new_anm->CalcTotal(); 1740 new_anm->CalcTotal();
1741 cmd.clear(); 1741 cmd.clear();
1742 } 1742 }
1743 } 1743 }
1744 if (cmd.cmd1 == 1 && cmd.cmd2 == 4) { // Percentage... maybe not working? 1744 if (cmd.cmd1 == 1 && cmd.cmd2 == 4) {
1745 if (cmd.cmd3 == 0x5de) { 1745 if (cmd.cmd3 == 0x5dc) // Total number of CG
1746 cmd.SetSysvar(cgm_size);
1747 if (cmd.cmd3 == 0x5dd) // Number of CG viewed
1748 cmd.SetSysvar(cgm_data.size());
1749 if (cmd.cmd3 == 0x5de) // Percentage of CG viewed
1746 cmd.SetSysvar(cgm_data.size() * 100 / cgm_size); 1750 cmd.SetSysvar(cgm_data.size() * 100 / cgm_size);
1747 } 1751
1748 if (cmd.cmd3 == 0xd8 || cmd.cmd3 == 0xd3 || cmd.cmd3 == 0xd2 || cmd.cmd3 == 0xd7) { 1752 if (cmd.cmd3 == 0xd8 || cmd.cmd3 == 0xd3 || cmd.cmd3 == 0xd2 || cmd.cmd3 == 0xd7) {
1749 cmd.clear(); // いつも 0xd8 / 0xd7 と組で出てくる 1753 cmd.clear(); // いつも 0xd8 / 0xd7 と組で出てくる
1750 } 1754 }
1755
1756 // CG Status
1751 if (cmd.cmd3 == 0x5e0) { // 画像既視フラグを得る 1757 if (cmd.cmd3 == 0x5e0) { // 画像既視フラグを得る
1752 string s = cmd.Str(cmd.args[0]); 1758 string s = cmd.Str(cmd.args[0]);
1753 if (cgm_info.find(s) == cgm_info.end()) { 1759 if (cgm_info.find(s) == cgm_info.end()) {
1754 fprintf(stderr,"cmd 01-04:05e0 : cannot find cgm-info of '%s'\n",s.c_str()); 1760 fprintf(stderr,"cmd 01-04:05e0 : cannot find cgm-info of '%s'\n",s.c_str());
1755 return; 1761 return;
1756 } 1762 }
1757 int n = cgm_info[s]; 1763 int n = cgm_info[s];
1758 if (cgm_data.find(n) == cgm_data.end()) cmd.SetSysvar(0); 1764 if (cgm_data.find(n) == cgm_data.end()) cmd.SetSysvar(0);
1759 else cmd.SetSysvar(1); 1765 else cmd.SetSysvar(1);
1766 }
1767
1768 if (cmd.cmd3 == 0x6a4) { // CreateInput (index, x, y, width, height, fontsize, br, bg, bb, fr, fg, fb)
1769 int index = cmd.args[0].value;
1770 int x = cmd.args[1].value;
1771 int y = cmd.args[2].value;
1772 //TODO
1773 }
1774 if (cmd.cmd3 == 0x6ae) { // SetInput (index, text)
1775 //TODO
1760 } 1776 }
1761 } 1777 }
1762 #if 1 1778 #if 1
1763 /* object 操作 */ 1779 /* object 操作 */
1764 if ( (cmd.cmd1 == 1 || cmd.cmd1 == 2) && (cmd.cmd2 == 0x3d || cmd.cmd2 == 0x3e) && (cmd.cmd3 == 0x0a || cmd.cmd3 == 0x0b || cmd.cmd3 == 0x0e)) { // clear object 1780 if ( (cmd.cmd1 == 1 || cmd.cmd1 == 2) && (cmd.cmd2 == 0x3d || cmd.cmd2 == 0x3e) && (cmd.cmd3 == 0x0a || cmd.cmd3 == 0x0b || cmd.cmd3 == 0x0e)) { // clear object
2200 // 音楽を待ってみる(絶対に違うが)。本来、04-803 に対応してなにかの終わりをwaitするっぽい(風子/智代Ed付近) 2216 // 音楽を待ってみる(絶対に違うが)。本来、04-803 に対応してなにかの終わりをwaitするっぽい(風子/智代Ed付近)
2201 // EnableSyscom らしいが、よくわからない (rldev) 2217 // EnableSyscom らしいが、よくわからない (rldev)
2202 // if (!music.IsStopSE()) status = WAIT_SE; 2218 // if (!music.IsStopSE()) status = WAIT_SE;
2203 cmd.clear(); 2219 cmd.clear();
2204 } 2220 }
2205 if (cmd.cmd1 == 1 && cmd.cmd2 == 4 && (cmd.cmd3 == 0x8b6 || cmd.cmd3 == 0x91a) ) { 2221
2206 // 音楽モードで音量を上げるためのコマンド (SetBgmVolume) 2222 // 音楽モードで音量を上げるためのコマンド (SetBgmVolume)
2207 // とりあえず未実装 2223 // とりあえず未実装
2224 if (cmd.cmd1 == 1 && cmd.cmd2 == 4 && cmd.cmd3 >= 0x8b6 && cmd.cmd3 <= 0x8b9) { // Set{Bgm,Koe,PCM,Se}VolMod
2225 music.volmod[cmd.cmd3-0x8b6] = cmd.args[0].value;
2226 config.SetParam("#VOLMOD", 4, music.volmod[0], music.volmod[1], music.volmod[2], music.volmod[3]);
2208 cmd.clear(); 2227 cmd.clear();
2228 }
2229 if (cmd.cmd1 == 1 && cmd.cmd2 == 4 && cmd.cmd3 >= 0x91a && cmd.cmd3 <= 0x91d) { // Get{Bgm,Koe,PCM,Se}VolMod
2230 cmd.SetSysvar(music.volmod[cmd.cmd3-0x91a]);
2209 } 2231 }
2210 2232
2211 if (cmd.cmd1 == 1 && cmd.cmd2 == 0x16) { 2233 if (cmd.cmd1 == 1 && cmd.cmd2 == 0x16) {
2212 if (cmd.cmd3 == 0 && cmd.cmd4 == 0) { 2234 if (cmd.cmd3 == 0 && cmd.cmd4 == 0) {
2213 eprintf("play SE %d\n",cmd.args[0].value); 2235 eprintf("play SE %d\n",cmd.args[0].value);