X operations(XOPS)に非常に近いFPSゲームを制作・リメイクし、成果物をオープンソースとして公開することを目的としたプロジェクトです。
| Revision | 111 (tree) |
|---|---|
| Time | 2015-09-21 16:40:50 |
| Author | |
ezds.dllのver0.4以外を読み込むと落ちる問題の対策
| @@ -514,6 +514,12 @@ | ||
| 514 | 514 | DSrelease = (FARPROCI)GetProcAddress(lib, "DSrelease"); |
| 515 | 515 | |
| 516 | 516 | //DLL初期化を実行 |
| 517 | + if( DSinit == NULL ){ | |
| 518 | + //DLLを開放 | |
| 519 | + FreeLibrary(lib); | |
| 520 | + lib = NULL; | |
| 521 | + //return 1; | |
| 522 | + } | |
| 517 | 523 | if( DSinit(WindowCtrl->GethWnd()) == 0 ){ |
| 518 | 524 | //DLLを開放 |
| 519 | 525 | FreeLibrary(lib); |
| @@ -542,8 +548,8 @@ | ||
| 542 | 548 | } |
| 543 | 549 | |
| 544 | 550 | //サウンドデータを開放し、DLLを終了 |
| 545 | - DSrelease(total); | |
| 546 | - DSend(); | |
| 551 | + if( DSrelease != NULL ){ DSrelease(total); } | |
| 552 | + if( DSend != NULL ){ DSend(); } | |
| 547 | 553 | |
| 548 | 554 | //DLLを開放 |
| 549 | 555 | FreeLibrary(lib); |
| @@ -598,6 +604,7 @@ | ||
| 598 | 604 | #endif |
| 599 | 605 | |
| 600 | 606 | //読み込みを試みる |
| 607 | + if( DSload == NULL ){ return -1; } | |
| 601 | 608 | if( DSload(filename, i) == 0 ){ return -1; } |
| 602 | 609 | |
| 603 | 610 | //使用中を新たすフラグをセット |
| @@ -627,6 +634,7 @@ | ||
| 627 | 634 | if( useflag[id] == false ){ return 0; } |
| 628 | 635 | |
| 629 | 636 | //サウンドを再生 |
| 637 | + if( DSplay == NULL ){ return 0; } | |
| 630 | 638 | return DSplay(id, (int)(mastervolume * volume), pan); |
| 631 | 639 | } |
| 632 | 640 |
| @@ -676,7 +684,7 @@ | ||
| 676 | 684 | if( useflag[id] == false ){ return; } |
| 677 | 685 | |
| 678 | 686 | //読み込みを意図的に失敗させ、強制的に初期化 |
| 679 | - DSload("", id); | |
| 687 | + if( DSload != NULL ){ DSload("", id); } | |
| 680 | 688 | |
| 681 | 689 | //使用中フラグを解除 |
| 682 | 690 | useflag[id] = false; |