Great Plug in!! I just started using it and have noticed a few things that you may already know.
I am using A7 v7.5 Commercial. I have gotten the version from the previous post to work great with my Toshiba Bluetooth stack, including separately connecting more than one remote. I have also started to implement this dll into my menu code. Although the wiimote_getdevices(); function does not seem to be returning the correct value. I have also created my own debug panel, so I do not use ackwii.c.
However, when I try to run the version in the latest post, I get no data. When I copy the dll into my project folder, it doesn't read any data from the wiimote. If I recopy the previous version, it works fine. I don't see any major changes to the lite-C files so I am unsure as to the cause. Since I can copy the two dll's into my project folder and one works and the other doesn't, then I don't think it is my code.
I'd love to help you test this out since I am hoping to use it within this new project as the major input device. I have built a USB IR 'Sensor Bar' to fit the front of my notebook. This is one of the best contributions I have seen to 3DGS, and I hope that you continue to develop it.
Here's how I'm using it...I do call wiimote_disconnect(WiiHandle[x]); when I close the program.
/******************************************
AW Adventure Main File
v 1.0
Gregory Arndt
(c) 2008 Artistry Entertainment
******************************************/
#define PRAGMA_PATH ".";
#define PRAGMA_PATH "code";
#define PRAGMA_PATH "images";
#define PRAGMA_PATH "maps";
#define PRAGMA_PATH "models";
#define PRAGMA_PATH "sounds";
#define PRAGMA_PATH "textures";
#define PRAGMA_PLUGIN "code\\lc_fmod_wrap.dll";
#define PRAGMA_PLUGIN "code\\ackwii.dll";
// Acknex Includes
#include <litec.h>
#include <acknex.h>
#include <default.c>
// FMOD Wrapper Include
#include "LC_FMOD_WRAP.h";
// Wii DLL Include
//#define WII_DEBUG
#include "ackwii.h"
// AWAdventure Includes
#include "AWAdventure.h"
#include "MediaFunctions.c"
#include "PanelFunctions.c"
#include "SystemFunctions.c"
// Main Function
void main()
{
var i;
fps_max = 180;
video_switch (6, 32, 2);
video_window(NULL,NULL,112,strGameName);
vec_set(screen_color, vector(0, 0, 0));
mouse_pointer = 0;
zero(WiiBuffer);
on_close = on_esc = NextProgramState;
on_f10 = ToggleInputCoords;
// assign functions to Wiimote buttons
WiiBuffer.event.on_1 = toggleIR;
WiiBuffer.event.on_2 = toggleVibration;
GetSystemInfo();
wait(10);
LoadSetup();
wait(10);
InitializeSounds();
wait(10);
WiiDevices = wiimote_getdevices();
WiiIndex = 0;
if (WiiDevices != NULL)
{
/* connect first device */
for (i = 0; i < 4; i++)
{ WiiHandle[WiiIndex+i] = wiimote_connect(WiiIndex+i); }
// wiimote_ir(WiiHandle[WiiIndex], 1);
}
NextProgramState();
while (1)
{
// Move Mouse
if(WiiHandle[WiiIndex] != NULL)
{
wiimote_status(WiiHandle[WiiIndex], &WiiBuffer[WiiIndex]);
mouse_pos.x = WiiBuffer[WiiIndex].ir[0].ir_x;
mouse_pos.y = WiiBuffer[WiiIndex].ir[0].ir_y;
}
else {
mouse_pos.x = mouse_cursor.x;
mouse_pos.y = mouse_cursor.y;
}
//Check Volume
if (vBGMVolume != vBGMVolumeSet) UpdateBGMVolume();
if (vSFXVolume != vSFXVolumeSet) UpdateSFXVolume();
if (vMasterVolume != vMasterVolumeSet) UpdateMasterVolume();
wait(1);
}
}
If I can continue to help thoroughly test this DLL, please let me know.
Gregory