• R/O
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

X operations(XOPS)に非常に近いFPSゲームを制作・リメイクし、成果物をオープンソースとして公開することを目的としたプロジェクトです。


Commit MetaInfo

Revision111 (tree)
Time2015-09-21 16:40:50
Authorxops-mikan

Log Message

ezds.dllのver0.4以外を読み込むと落ちる問題の対策

Change Summary

Incremental Difference

--- trunk/sound.cpp (revision 110)
+++ trunk/sound.cpp (revision 111)
@@ -514,6 +514,12 @@
514514 DSrelease = (FARPROCI)GetProcAddress(lib, "DSrelease");
515515
516516 //DLL初期化を実行
517+ if( DSinit == NULL ){
518+ //DLLを開放
519+ FreeLibrary(lib);
520+ lib = NULL;
521+ //return 1;
522+ }
517523 if( DSinit(WindowCtrl->GethWnd()) == 0 ){
518524 //DLLを開放
519525 FreeLibrary(lib);
@@ -542,8 +548,8 @@
542548 }
543549
544550 //サウンドデータを開放し、DLLを終了
545- DSrelease(total);
546- DSend();
551+ if( DSrelease != NULL ){ DSrelease(total); }
552+ if( DSend != NULL ){ DSend(); }
547553
548554 //DLLを開放
549555 FreeLibrary(lib);
@@ -598,6 +604,7 @@
598604 #endif
599605
600606 //読み込みを試みる
607+ if( DSload == NULL ){ return -1; }
601608 if( DSload(filename, i) == 0 ){ return -1; }
602609
603610 //使用中を新たすフラグをセット
@@ -627,6 +634,7 @@
627634 if( useflag[id] == false ){ return 0; }
628635
629636 //サウンドを再生
637+ if( DSplay == NULL ){ return 0; }
630638 return DSplay(id, (int)(mastervolume * volume), pan);
631639 }
632640
@@ -676,7 +684,7 @@
676684 if( useflag[id] == false ){ return; }
677685
678686 //読み込みを意図的に失敗させ、強制的に初期化
679- DSload("", id);
687+ if( DSload != NULL ){ DSload("", id); }
680688
681689 //使用中フラグを解除
682690 useflag[id] = false;