BWMIrror v2.1
This commit is contained in:
parent
6065021f23
commit
2a3bb21681
595889
bwapi-data/BWTA2/0409ca0d7fe0c7f4083a70996a8f28f664d2fe37.bwta
Normal file
595889
bwapi-data/BWTA2/0409ca0d7fe0c7f4083a70996a8f28f664d2fe37.bwta
Normal file
File diff suppressed because it is too large
Load diff
596370
bwapi-data/BWTA2/1e983eb6bcfa02ef7d75bd572cb59ad3aab49285.bwta
Normal file
596370
bwapi-data/BWTA2/1e983eb6bcfa02ef7d75bd572cb59ad3aab49285.bwta
Normal file
File diff suppressed because it is too large
Load diff
597102
bwapi-data/BWTA2/2f69eaa1a73bb743934d55e7ea12186fe340e656.bwta
Normal file
597102
bwapi-data/BWTA2/2f69eaa1a73bb743934d55e7ea12186fe340e656.bwta
Normal file
File diff suppressed because it is too large
Load diff
597127
bwapi-data/BWTA2/450a792de0e544b51af5de578061cb8a2f020f32.bwta
Normal file
597127
bwapi-data/BWTA2/450a792de0e544b51af5de578061cb8a2f020f32.bwta
Normal file
File diff suppressed because it is too large
Load diff
447814
bwapi-data/BWTA2/4e24f217d2fe4dbfa6799bc57f74d8dc939d425b.bwta
Normal file
447814
bwapi-data/BWTA2/4e24f217d2fe4dbfa6799bc57f74d8dc939d425b.bwta
Normal file
File diff suppressed because it is too large
Load diff
448008
bwapi-data/BWTA2/6f8da3c3cc8d08d9cf882700efa049280aedca8c.bwta
Normal file
448008
bwapi-data/BWTA2/6f8da3c3cc8d08d9cf882700efa049280aedca8c.bwta
Normal file
File diff suppressed because it is too large
Load diff
598125
bwapi-data/BWTA2/9505d618c63a0959f0c0bfe21c253a2ea6e58d26.bwta
Normal file
598125
bwapi-data/BWTA2/9505d618c63a0959f0c0bfe21c253a2ea6e58d26.bwta
Normal file
File diff suppressed because it is too large
Load diff
597283
bwapi-data/BWTA2/9a4498a896b28d115129624f1c05322f48188fe0.bwta
Normal file
597283
bwapi-data/BWTA2/9a4498a896b28d115129624f1c05322f48188fe0.bwta
Normal file
File diff suppressed because it is too large
Load diff
595227
bwapi-data/BWTA2/9bfc271360fa5bab3707a29e1326b84d0ff58911.bwta
Normal file
595227
bwapi-data/BWTA2/9bfc271360fa5bab3707a29e1326b84d0ff58911.bwta
Normal file
File diff suppressed because it is too large
Load diff
597153
bwapi-data/BWTA2/a220d93efdf05a439b83546a579953c63c863ca7.bwta
Normal file
597153
bwapi-data/BWTA2/a220d93efdf05a439b83546a579953c63c863ca7.bwta
Normal file
File diff suppressed because it is too large
Load diff
521643
bwapi-data/BWTA2/af618ea3ed8a8926ca7b17619eebcb9126f0d8b1.bwta
Normal file
521643
bwapi-data/BWTA2/af618ea3ed8a8926ca7b17619eebcb9126f0d8b1.bwta
Normal file
File diff suppressed because it is too large
Load diff
596552
bwapi-data/BWTA2/c8386b87051f6773f6b2681b0e8318244aa086a6.bwta
Normal file
596552
bwapi-data/BWTA2/c8386b87051f6773f6b2681b0e8318244aa086a6.bwta
Normal file
File diff suppressed because it is too large
Load diff
594432
bwapi-data/BWTA2/de2ada75fbc741cfa261ee467bf6416b10f9e301.bwta
Normal file
594432
bwapi-data/BWTA2/de2ada75fbc741cfa261ee467bf6416b10f9e301.bwta
Normal file
File diff suppressed because it is too large
Load diff
596325
bwapi-data/BWTA2/df21ac8f19f805e1e0d4e9aa9484969528195d9f.bwta
Normal file
596325
bwapi-data/BWTA2/df21ac8f19f805e1e0d4e9aa9484969528195d9f.bwta
Normal file
File diff suppressed because it is too large
Load diff
595975
bwapi-data/BWTA2/e47775e171fe3f67cc2946825f00a6993b5a415e.bwta
Normal file
595975
bwapi-data/BWTA2/e47775e171fe3f67cc2946825f00a6993b5a415e.bwta
Normal file
File diff suppressed because it is too large
Load diff
Binary file not shown.
Binary file not shown.
BIN
bwmirror_v2_1.jar
Normal file
BIN
bwmirror_v2_1.jar
Normal file
Binary file not shown.
235
c4/impl.cpp
235
c4/impl.cpp
|
@ -260,7 +260,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Player");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Player;");
|
||||
for(Playerset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Player elem_ptr = *it;
|
||||
for(Playerset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Player elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -275,7 +276,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Player");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Player;");
|
||||
for(Playerset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Player elem_ptr = *it;
|
||||
for(Playerset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Player elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -290,7 +292,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Force");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Force;");
|
||||
for(Forceset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Force elem_ptr = *it;
|
||||
for(Forceset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Force elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -305,7 +308,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Player");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Player;");
|
||||
for(Playerset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Player elem_ptr = *it;
|
||||
for(Playerset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Player elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -320,7 +324,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -335,7 +340,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -350,7 +356,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -365,7 +372,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -380,7 +388,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -395,7 +404,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -410,7 +420,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -425,7 +436,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Bullet");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Bullet;");
|
||||
for(Bulletset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Bullet elem_ptr = *it;
|
||||
for(Bulletset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Bullet elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -848,7 +860,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -884,7 +897,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Player");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Player;");
|
||||
for(Playerset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Player elem_ptr = *it;
|
||||
for(Playerset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Player elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -899,7 +913,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Player");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Player;");
|
||||
for(Playerset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Player elem_ptr = *it;
|
||||
for(Playerset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Player elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -914,7 +929,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Player");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Player;");
|
||||
for(Playerset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Player elem_ptr = *it;
|
||||
for(Playerset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Player elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -1484,7 +1500,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Region");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Region;");
|
||||
for(Regionset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Region elem_ptr = *it;
|
||||
for(Regionset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Region elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -1610,7 +1627,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -1898,7 +1916,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -2025,7 +2044,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Region");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Region;");
|
||||
for(Regionset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Region elem_ptr = *it;
|
||||
for(Regionset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Region elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -2524,7 +2544,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -2550,7 +2571,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -2572,7 +2594,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -5035,7 +5058,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -5050,7 +5074,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -5065,7 +5090,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -5315,6 +5341,42 @@ jclass retcls = FindCachedClass(env, "bwapi/Race");
|
|||
jmethodID mid = FindCachedMethodStatic(env, retcls, "get", "(J)Lbwapi/Race;");
|
||||
return env->CallStaticObjectMethod(retcls, mid, resptr);
|
||||
}
|
||||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_whatBuilds_1native(JNIEnv * env, jobject obj, jlong pointer){
|
||||
UnitType* x_unitType = (UnitType*)pointer;
|
||||
std::pair<UnitType, int> cresult = x_unitType->whatBuilds();
|
||||
jclass firstElemClass = FindCachedClass(env, "bwapi/UnitType");
|
||||
jmethodID firstGetMethodID = FindCachedMethodStatic(env, firstElemClass, "get", "(J)Lbwapi/UnitType;");
|
||||
jclass secondElemClass = FindCachedClass(env, "java/lang/Integer");
|
||||
jmethodID secondElemConsID = FindCachedMethod(env, secondElemClass, "<init>", "(I)V");
|
||||
const UnitType* first_elem_ptr = tableUnitType.find((cresult.first).getID())->second;
|
||||
jobject first = env->CallStaticObjectMethod(firstElemClass, firstGetMethodID, (long)first_elem_ptr) ;
|
||||
const int second_elem_ptr = cresult.second;
|
||||
jobject second = env->NewObject(secondElemClass, secondElemConsID, second_elem_ptr);
|
||||
jclass retcls = FindCachedClass(env, "bwapi/Pair");
|
||||
jmethodID retConsID = FindCachedMethod(env, retcls, "<init>", "(Ljava/lang/Object;Ljava/lang/Object;)V");
|
||||
jobject result = env->NewObject(retcls, retConsID, first, second);
|
||||
return result;
|
||||
}
|
||||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_requiredUnits_1native(JNIEnv * env, jobject obj, jlong pointer){
|
||||
UnitType* x_unitType = (UnitType*)pointer;
|
||||
std::map<UnitType, int> cresult = x_unitType->requiredUnits();
|
||||
jclass listCls = FindCachedClass(env, "java/util/HashMap");
|
||||
jmethodID listConsID = FindCachedMethod(env, listCls, "<init>", "()V");
|
||||
jobject result = env->NewObject(listCls, listConsID);
|
||||
jmethodID addMethodID = FindCachedMethod(env, listCls, "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
|
||||
jclass keyElemClass = FindCachedClass(env, "bwapi/UnitType");
|
||||
jmethodID keyGetMethodID = FindCachedMethodStatic(env, keyElemClass, "get", "(J)Lbwapi/UnitType;");
|
||||
jclass valueElemClass = FindCachedClass(env, "java/lang/Integer");
|
||||
jmethodID valueElemConsID = FindCachedMethod(env, valueElemClass, "<init>", "(I)V");
|
||||
for(std::map<UnitType, int>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const UnitType* key_elem_ptr = tableUnitType.find((it->first).getID())->second;
|
||||
jobject keyElem = env->CallStaticObjectMethod(keyElemClass, keyGetMethodID, (long)key_elem_ptr) ;
|
||||
const int value_elem_ptr = (it->second);
|
||||
jobject valueElem = env->NewObject(valueElemClass, valueElemConsID, value_elem_ptr);
|
||||
env->CallVoidMethod(result, addMethodID, keyElem, valueElem);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_requiredTech_1native(JNIEnv * env, jobject obj, jlong pointer){
|
||||
UnitType* x_unitType = (UnitType*)pointer;
|
||||
jlong resptr = (jlong)tableTechType.find(x_unitType->requiredTech())->second;
|
||||
|
@ -5329,6 +5391,38 @@ jclass retcls = FindCachedClass(env, "bwapi/TechType");
|
|||
jmethodID mid = FindCachedMethodStatic(env, retcls, "get", "(J)Lbwapi/TechType;");
|
||||
return env->CallStaticObjectMethod(retcls, mid, resptr);
|
||||
}
|
||||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_abilities_1native(JNIEnv * env, jobject obj, jlong pointer){
|
||||
UnitType* x_unitType = (UnitType*)pointer;
|
||||
SetContainer<TechType> cresult = x_unitType->abilities();
|
||||
jclass listCls = FindCachedClass(env, "java/util/ArrayList");
|
||||
jmethodID listConsID = FindCachedMethod(env, listCls, "<init>", "()V");
|
||||
jobject result = env->NewObject(listCls, listConsID);
|
||||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/TechType");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/TechType;");
|
||||
for(SetContainer<TechType>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const TechType* elem_ptr = tableTechType.find((*it).getID())->second;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_upgrades_1native(JNIEnv * env, jobject obj, jlong pointer){
|
||||
UnitType* x_unitType = (UnitType*)pointer;
|
||||
SetContainer<UpgradeType> cresult = x_unitType->upgrades();
|
||||
jclass listCls = FindCachedClass(env, "java/util/ArrayList");
|
||||
jmethodID listConsID = FindCachedMethod(env, listCls, "<init>", "()V");
|
||||
jobject result = env->NewObject(listCls, listConsID);
|
||||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwapi/UpgradeType");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwapi/UpgradeType;");
|
||||
for(SetContainer<UpgradeType>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const UpgradeType* elem_ptr = tableUpgradeType.find((*it).getID())->second;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_armorUpgrade_1native(JNIEnv * env, jobject obj, jlong pointer){
|
||||
UnitType* x_unitType = (UnitType*)pointer;
|
||||
jlong resptr = (jlong)tableUpgradeType.find(x_unitType->armorUpgrade())->second;
|
||||
|
@ -5865,7 +5959,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwta/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwta/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -5880,7 +5975,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwta/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwta/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -5895,7 +5991,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwta/Unit");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwta/Unit;");
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const Unit elem_ptr = *it;
|
||||
for(Unitset::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const Unit elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -5946,7 +6043,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwta/Region");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwta/Region;");
|
||||
for(std::set<BWTA::Region*>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const BWTA::Region* elem_ptr = *it;
|
||||
for(std::set<BWTA::Region*>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const BWTA::Region* elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -5960,7 +6058,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwta/Chokepoint");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwta/Chokepoint;");
|
||||
for(std::set<BWTA::Chokepoint*>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const BWTA::Chokepoint* elem_ptr = *it;
|
||||
for(std::set<BWTA::Chokepoint*>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const BWTA::Chokepoint* elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -5974,7 +6073,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwta/BaseLocation");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwta/BaseLocation;");
|
||||
for(std::set<BWTA::BaseLocation*>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const BWTA::BaseLocation* elem_ptr = *it;
|
||||
for(std::set<BWTA::BaseLocation*>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const BWTA::BaseLocation* elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -5988,7 +6088,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwta/BaseLocation");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwta/BaseLocation;");
|
||||
for(std::set<BWTA::BaseLocation*>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const BWTA::BaseLocation* elem_ptr = *it;
|
||||
for(std::set<BWTA::BaseLocation*>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const BWTA::BaseLocation* elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -6002,7 +6103,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwta/Polygon");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwta/Polygon;");
|
||||
for(std::set<BWTA::Polygon*>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const BWTA::Polygon* elem_ptr = *it;
|
||||
for(std::set<BWTA::Polygon*>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const BWTA::Polygon* elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -6109,6 +6211,62 @@ TilePosition start((int)env->GetIntField(p_start, FindCachedField(env, env->GetO
|
|||
TilePosition end((int)env->GetIntField(p_end, FindCachedField(env, env->GetObjectClass(p_end), "x", "I")), (int)env->GetIntField(p_end, FindCachedField(env, env->GetObjectClass(p_end), "y", "I")));
|
||||
return BWTA::getGroundDistance(start, end);
|
||||
}
|
||||
JNIEXPORT jobject JNICALL Java_bwta_BWTA_getNearestTilePosition(JNIEnv * env, jclass jclz, jobject p_start, jobject p_targets){
|
||||
TilePosition start((int)env->GetIntField(p_start, FindCachedField(env, env->GetObjectClass(p_start), "x", "I")), (int)env->GetIntField(p_start, FindCachedField(env, env->GetObjectClass(p_start), "y", "I")));
|
||||
std::set<TilePosition> targets;
|
||||
jclass colClass = env->GetObjectClass(p_targets);
|
||||
jmethodID sizeMethodId = FindCachedMethod(env, colClass, "size", "()I");
|
||||
jmethodID getMethodId = FindCachedMethod(env, colClass, "get", "(I)Ljava/lang/Object;");
|
||||
int size = (int)env->CallIntMethod(p_targets, sizeMethodId);
|
||||
for( int i = 0; i < size; i++ ) {
|
||||
jobject p_cObj = env->CallObjectMethod(p_targets,getMethodId);
|
||||
TilePosition cObj((int)env->GetIntField(p_cObj, FindCachedField(env, env->GetObjectClass(p_cObj), "x", "I")), (int)env->GetIntField(p_cObj, FindCachedField(env, env->GetObjectClass(p_cObj), "y", "I")));
|
||||
targets.insert(cObj);
|
||||
}
|
||||
std::pair<TilePosition, double> cresult = BWTA::getNearestTilePosition(start, targets);
|
||||
jclass firstElemClass = FindCachedClass(env, "bwta/TilePosition");
|
||||
jmethodID firstElemConsID = FindCachedMethod(env, firstElemClass, "<init>", "(II)V");
|
||||
jclass secondElemClass = FindCachedClass(env, "java/lang/Double");
|
||||
jmethodID secondElemConsID = FindCachedMethod(env, secondElemClass, "<init>", "(D)V");
|
||||
const TilePosition first_elem_ptr = cresult.first;
|
||||
jobject first = env->NewObject(firstElemClass, firstElemConsID, first_elem_ptr.x, first_elem_ptr.y);
|
||||
const double second_elem_ptr = cresult.second;
|
||||
jobject second = env->NewObject(secondElemClass, secondElemConsID,second_elem_ptr);
|
||||
jclass retcls = FindCachedClass(env, "bwta/Pair");
|
||||
jmethodID retConsID = FindCachedMethod(env, retcls, "<init>", "(Ljava/lang/Object;Ljava/lang/Object;)V");
|
||||
jobject result = env->NewObject(retcls, retConsID, first, second);
|
||||
return result;
|
||||
}
|
||||
JNIEXPORT jobject JNICALL Java_bwta_BWTA_getGroundDistances(JNIEnv * env, jclass jclz, jobject p_start, jobject p_targets){
|
||||
TilePosition start((int)env->GetIntField(p_start, FindCachedField(env, env->GetObjectClass(p_start), "x", "I")), (int)env->GetIntField(p_start, FindCachedField(env, env->GetObjectClass(p_start), "y", "I")));
|
||||
std::set<TilePosition> targets;
|
||||
jclass colClass = env->GetObjectClass(p_targets);
|
||||
jmethodID sizeMethodId = FindCachedMethod(env, colClass, "size", "()I");
|
||||
jmethodID getMethodId = FindCachedMethod(env, colClass, "get", "(I)Ljava/lang/Object;");
|
||||
int size = (int)env->CallIntMethod(p_targets, sizeMethodId);
|
||||
for( int i = 0; i < size; i++ ) {
|
||||
jobject p_cObj = env->CallObjectMethod(p_targets,getMethodId);
|
||||
TilePosition cObj((int)env->GetIntField(p_cObj, FindCachedField(env, env->GetObjectClass(p_cObj), "x", "I")), (int)env->GetIntField(p_cObj, FindCachedField(env, env->GetObjectClass(p_cObj), "y", "I")));
|
||||
targets.insert(cObj);
|
||||
}
|
||||
std::map<TilePosition, double> cresult = BWTA::getGroundDistances(start, targets);
|
||||
jclass listCls = FindCachedClass(env, "java/util/HashMap");
|
||||
jmethodID listConsID = FindCachedMethod(env, listCls, "<init>", "()V");
|
||||
jobject result = env->NewObject(listCls, listConsID);
|
||||
jmethodID addMethodID = FindCachedMethod(env, listCls, "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
|
||||
jclass keyElemClass = FindCachedClass(env, "bwta/TilePosition");
|
||||
jmethodID keyElemConsID = FindCachedMethod(env, keyElemClass, "<init>", "(II)V");
|
||||
jclass valueElemClass = FindCachedClass(env, "java/lang/Double");
|
||||
jmethodID valueElemConsID = FindCachedMethod(env, valueElemClass, "<init>", "(D)V");
|
||||
for(std::map<TilePosition, double>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const TilePosition key_elem_ptr = (it->first);
|
||||
jobject keyElem = env->NewObject(keyElemClass, keyElemConsID, key_elem_ptr.x, key_elem_ptr.y);
|
||||
const double value_elem_ptr = (it->second);
|
||||
jobject valueElem = env->NewObject(valueElemClass, valueElemConsID,value_elem_ptr);
|
||||
env->CallVoidMethod(result, addMethodID, keyElem, valueElem);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
JNIEXPORT void JNICALL Java_bwta_BWTA_buildChokeNodes(JNIEnv * env, jclass jclz){
|
||||
BWTA::buildChokeNodes();
|
||||
}
|
||||
|
@ -6183,7 +6341,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwta/Chokepoint");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwta/Chokepoint;");
|
||||
for(std::set<BWTA::Chokepoint*>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const BWTA::Chokepoint* elem_ptr = *it;
|
||||
for(std::set<BWTA::Chokepoint*>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const BWTA::Chokepoint* elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -6198,7 +6357,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwta/BaseLocation");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwta/BaseLocation;");
|
||||
for(std::set<BWTA::BaseLocation*>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const BWTA::BaseLocation* elem_ptr = *it;
|
||||
for(std::set<BWTA::BaseLocation*>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const BWTA::BaseLocation* elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
@ -6218,7 +6378,8 @@ jobject result = env->NewObject(listCls, listConsID);
|
|||
jmethodID addMethodID = FindCachedMethod(env, listCls, "add", "(Ljava/lang/Object;)Z");
|
||||
jclass elemClass = FindCachedClass(env, "bwta/Region");
|
||||
jmethodID getMethodID = FindCachedMethodStatic(env, elemClass, "get", "(J)Lbwta/Region;");
|
||||
for(std::set<BWTA::Region*>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){const BWTA::Region* elem_ptr = *it;
|
||||
for(std::set<BWTA::Region*>::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){
|
||||
const BWTA::Region* elem_ptr = *it;
|
||||
jobject elem = env->CallStaticObjectMethod(elemClass, getMethodID, (long)elem_ptr) ;
|
||||
env->CallVoidMethod(result, addMethodID, elem);
|
||||
}
|
||||
|
|
Binary file not shown.
BIN
compiled4/bwapi/Pair.class
Normal file
BIN
compiled4/bwapi/Pair.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -2291,6 +2291,17 @@ extern "C" {
|
|||
}
|
||||
#endif
|
||||
#endif
|
||||
/* Header for class bwapi_Pair */
|
||||
|
||||
#ifndef _Included_bwapi_Pair
|
||||
#define _Included_bwapi_Pair
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
/* Header for class bwapi_Player */
|
||||
|
||||
#ifndef _Included_bwapi_Player
|
||||
|
@ -7872,6 +7883,22 @@ JNIEXPORT jstring JNICALL Java_bwapi_UnitType_toString_1native
|
|||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_getRace_1native
|
||||
(JNIEnv *, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: bwapi_UnitType
|
||||
* Method: whatBuilds_native
|
||||
* Signature: (J)Lbwapi/Pair;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_whatBuilds_1native
|
||||
(JNIEnv *, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: bwapi_UnitType
|
||||
* Method: requiredUnits_native
|
||||
* Signature: (J)Ljava/util/Map;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_requiredUnits_1native
|
||||
(JNIEnv *, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: bwapi_UnitType
|
||||
* Method: requiredTech_native
|
||||
|
@ -7888,6 +7915,22 @@ JNIEXPORT jobject JNICALL Java_bwapi_UnitType_requiredTech_1native
|
|||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_cloakingTech_1native
|
||||
(JNIEnv *, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: bwapi_UnitType
|
||||
* Method: abilities_native
|
||||
* Signature: (J)Ljava/util/List;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_abilities_1native
|
||||
(JNIEnv *, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: bwapi_UnitType
|
||||
* Method: upgrades_native
|
||||
* Signature: (J)Ljava/util/List;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_upgrades_1native
|
||||
(JNIEnv *, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: bwapi_UnitType
|
||||
* Method: armorUpgrade_native
|
||||
|
@ -9224,6 +9267,22 @@ JNIEXPORT jboolean JNICALL Java_bwta_BWTA_isConnected__Lbwapi_TilePosition_2Lbwa
|
|||
JNIEXPORT jdouble JNICALL Java_bwta_BWTA_getGroundDistance
|
||||
(JNIEnv *, jclass, jobject, jobject);
|
||||
|
||||
/*
|
||||
* Class: bwta_BWTA
|
||||
* Method: getNearestTilePosition
|
||||
* Signature: (Lbwapi/TilePosition;Ljava/util/List;)Lbwapi/Pair;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL Java_bwta_BWTA_getNearestTilePosition
|
||||
(JNIEnv *, jclass, jobject, jobject);
|
||||
|
||||
/*
|
||||
* Class: bwta_BWTA
|
||||
* Method: getGroundDistances
|
||||
* Signature: (Lbwapi/TilePosition;Ljava/util/List;)Ljava/util/Map;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL Java_bwta_BWTA_getGroundDistances
|
||||
(JNIEnv *, jclass, jobject, jobject);
|
||||
|
||||
/*
|
||||
* Class: bwta_BWTA
|
||||
* Method: buildChokeNodes
|
||||
|
|
|
@ -56,11 +56,11 @@ public class Mirror {
|
|||
|
||||
private static final boolean EXTRACT_JAR = true;
|
||||
|
||||
private static final String VERSION = "2_0";
|
||||
private static final String VERSION = "2_1";
|
||||
|
||||
static {
|
||||
String arch = System.getProperty("os.arch");
|
||||
String dllNames[] = {"bwapi_bridge" + VERSION};
|
||||
String dllNames[] = {"bwapi_bridge" + VERSION, "libgmp-10", "libmpfr-4"};
|
||||
if(!arch.equals("x86")){
|
||||
throw new UnsupportedOperationException("BWMirror API supports only x86 architecture.");
|
||||
}
|
||||
|
|
48
generated/bwapi/Pair.java
Normal file
48
generated/bwapi/Pair.java
Normal file
|
@ -0,0 +1,48 @@
|
|||
package bwapi;
|
||||
|
||||
/**
|
||||
* Created with IntelliJ IDEA.
|
||||
* User: Vladimir
|
||||
* Date: 27.2.2014
|
||||
* Time: 10:52
|
||||
*/
|
||||
public class Pair<K,V> {
|
||||
public K first;
|
||||
public V second;
|
||||
|
||||
public Pair() {
|
||||
}
|
||||
|
||||
public Pair(K first, V second) {
|
||||
this.first = first;
|
||||
this.second = second;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Pair{" +
|
||||
"first=" + first +
|
||||
", second=" + second +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
Pair pair = (Pair) o;
|
||||
|
||||
if (first != null ? !first.equals(pair.first) : pair.first != null) return false;
|
||||
if (second != null ? !second.equals(pair.second) : pair.second != null) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = first != null ? first.hashCode() : 0;
|
||||
result = 31 * result + (second != null ? second.hashCode() : 0);
|
||||
return result;
|
||||
}
|
||||
}
|
|
@ -17,6 +17,14 @@ public class UnitType {
|
|||
return getRace_native(pointer);
|
||||
}
|
||||
|
||||
public Pair<UnitType, Integer> whatBuilds() {
|
||||
return whatBuilds_native(pointer);
|
||||
}
|
||||
|
||||
public Map<UnitType, Integer> requiredUnits() {
|
||||
return requiredUnits_native(pointer);
|
||||
}
|
||||
|
||||
public TechType requiredTech() {
|
||||
return requiredTech_native(pointer);
|
||||
}
|
||||
|
@ -25,6 +33,14 @@ public class UnitType {
|
|||
return cloakingTech_native(pointer);
|
||||
}
|
||||
|
||||
public List<TechType> abilities() {
|
||||
return abilities_native(pointer);
|
||||
}
|
||||
|
||||
public List<UpgradeType> upgrades() {
|
||||
return upgrades_native(pointer);
|
||||
}
|
||||
|
||||
public UpgradeType armorUpgrade() {
|
||||
return armorUpgrade_native(pointer);
|
||||
}
|
||||
|
@ -748,10 +764,18 @@ public class UnitType {
|
|||
|
||||
private native Race getRace_native(long pointer);
|
||||
|
||||
private native Pair<UnitType, Integer> whatBuilds_native(long pointer);
|
||||
|
||||
private native Map<UnitType, Integer> requiredUnits_native(long pointer);
|
||||
|
||||
private native TechType requiredTech_native(long pointer);
|
||||
|
||||
private native TechType cloakingTech_native(long pointer);
|
||||
|
||||
private native List<TechType> abilities_native(long pointer);
|
||||
|
||||
private native List<UpgradeType> upgrades_native(long pointer);
|
||||
|
||||
private native UpgradeType armorUpgrade_native(long pointer);
|
||||
|
||||
private native int maxHitPoints_native(long pointer);
|
||||
|
|
|
@ -10,6 +10,7 @@ import bwapi.Position;
|
|||
import bwapi.TilePosition;
|
||||
import bwapi.Player;
|
||||
import bwapi.Unit;
|
||||
import bwapi.Pair;
|
||||
|
||||
public class BWTA {
|
||||
|
||||
|
@ -65,6 +66,10 @@ public class BWTA {
|
|||
|
||||
public static native double getGroundDistance(TilePosition start, TilePosition end);
|
||||
|
||||
public static native Pair<TilePosition, Double> getNearestTilePosition(TilePosition start, List<TilePosition> targets);
|
||||
|
||||
public static native Map<TilePosition, Double> getGroundDistances(TilePosition start, List<TilePosition> targets);
|
||||
|
||||
public static native void buildChokeNodes();
|
||||
|
||||
public static native int getGroundDistance2(TilePosition start, TilePosition end);
|
||||
|
|
|
@ -10,6 +10,7 @@ import bwapi.Position;
|
|||
import bwapi.TilePosition;
|
||||
import bwapi.Player;
|
||||
import bwapi.Unit;
|
||||
import bwapi.Pair;
|
||||
import bwapi.PositionedObject;
|
||||
|
||||
public class BaseLocation extends PositionedObject
|
||||
|
|
|
@ -10,6 +10,7 @@ import bwapi.Position;
|
|||
import bwapi.TilePosition;
|
||||
import bwapi.Player;
|
||||
import bwapi.Unit;
|
||||
import bwapi.Pair;
|
||||
import bwapi.CenteredObject;
|
||||
|
||||
public class Chokepoint extends CenteredObject
|
||||
|
|
|
@ -10,6 +10,7 @@ import bwapi.Position;
|
|||
import bwapi.TilePosition;
|
||||
import bwapi.Player;
|
||||
import bwapi.Unit;
|
||||
import bwapi.Pair;
|
||||
|
||||
public class Polygon {
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ import bwapi.Position;
|
|||
import bwapi.TilePosition;
|
||||
import bwapi.Player;
|
||||
import bwapi.Unit;
|
||||
import bwapi.Pair;
|
||||
import bwapi.CenteredObject;
|
||||
|
||||
public class Region extends CenteredObject
|
||||
|
|
13
headers4/bwapi_Pair.h
Normal file
13
headers4/bwapi_Pair.h
Normal file
|
@ -0,0 +1,13 @@
|
|||
/* DO NOT EDIT THIS FILE - it is machine generated */
|
||||
#include <jni.h>
|
||||
/* Header for class bwapi_Pair */
|
||||
|
||||
#ifndef _Included_bwapi_Pair
|
||||
#define _Included_bwapi_Pair
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
|
@ -23,6 +23,22 @@ JNIEXPORT jstring JNICALL Java_bwapi_UnitType_toString_1native
|
|||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_getRace_1native
|
||||
(JNIEnv *, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: bwapi_UnitType
|
||||
* Method: whatBuilds_native
|
||||
* Signature: (J)Lbwapi/Pair;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_whatBuilds_1native
|
||||
(JNIEnv *, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: bwapi_UnitType
|
||||
* Method: requiredUnits_native
|
||||
* Signature: (J)Ljava/util/Map;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_requiredUnits_1native
|
||||
(JNIEnv *, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: bwapi_UnitType
|
||||
* Method: requiredTech_native
|
||||
|
@ -39,6 +55,22 @@ JNIEXPORT jobject JNICALL Java_bwapi_UnitType_requiredTech_1native
|
|||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_cloakingTech_1native
|
||||
(JNIEnv *, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: bwapi_UnitType
|
||||
* Method: abilities_native
|
||||
* Signature: (J)Ljava/util/List;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_abilities_1native
|
||||
(JNIEnv *, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: bwapi_UnitType
|
||||
* Method: upgrades_native
|
||||
* Signature: (J)Ljava/util/List;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL Java_bwapi_UnitType_upgrades_1native
|
||||
(JNIEnv *, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: bwapi_UnitType
|
||||
* Method: armorUpgrade_native
|
||||
|
|
|
@ -215,6 +215,22 @@ JNIEXPORT jboolean JNICALL Java_bwta_BWTA_isConnected__Lbwapi_TilePosition_2Lbwa
|
|||
JNIEXPORT jdouble JNICALL Java_bwta_BWTA_getGroundDistance
|
||||
(JNIEnv *, jclass, jobject, jobject);
|
||||
|
||||
/*
|
||||
* Class: bwta_BWTA
|
||||
* Method: getNearestTilePosition
|
||||
* Signature: (Lbwapi/TilePosition;Ljava/util/List;)Lbwapi/Pair;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL Java_bwta_BWTA_getNearestTilePosition
|
||||
(JNIEnv *, jclass, jobject, jobject);
|
||||
|
||||
/*
|
||||
* Class: bwta_BWTA
|
||||
* Method: getGroundDistances
|
||||
* Signature: (Lbwapi/TilePosition;Ljava/util/List;)Ljava/util/Map;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL Java_bwta_BWTA_getGroundDistances
|
||||
(JNIEnv *, jclass, jobject, jobject);
|
||||
|
||||
/*
|
||||
* Class: bwta_BWTA
|
||||
* Method: buildChokeNodes
|
||||
|
|
|
@ -1 +1 @@
|
|||
"C:\Program Files\Java\jdk1.7.0_02\bin\javadoc.exe" -public -splitindex bwapi -sourcepath C:\Users\PC\IdeaProjects\BWLIB\generated -d C:\Users\PC\IdeaProjects\BWLIB\javadoc
|
||||
"C:\Program Files\Java\jdk1.7.0_02\bin\javadoc.exe" -public -splitindex bwapi bwta -sourcepath C:\Users\PC\IdeaProjects\BWLIB\generated -d C:\Users\PC\IdeaProjects\BWLIB\javadoc
|
||||
|
|
|
@ -56,11 +56,11 @@ public class Mirror {
|
|||
|
||||
private static final boolean EXTRACT_JAR = true;
|
||||
|
||||
private static final String VERSION = "2_0";
|
||||
private static final String VERSION = "2_1";
|
||||
|
||||
static {
|
||||
String arch = System.getProperty("os.arch");
|
||||
String dllNames[] = {"bwapi_bridge" + VERSION};
|
||||
String dllNames[] = {"bwapi_bridge" + VERSION, "libgmp-10", "libmpfr-4"};
|
||||
if(!arch.equals("x86")){
|
||||
throw new UnsupportedOperationException("BWMirror API supports only x86 architecture.");
|
||||
}
|
||||
|
|
48
manual-bwapi4/Pair.java
Normal file
48
manual-bwapi4/Pair.java
Normal file
|
@ -0,0 +1,48 @@
|
|||
package bwapi;
|
||||
|
||||
/**
|
||||
* Created with IntelliJ IDEA.
|
||||
* User: Vladimir
|
||||
* Date: 27.2.2014
|
||||
* Time: 10:52
|
||||
*/
|
||||
public class Pair<K,V> {
|
||||
public K first;
|
||||
public V second;
|
||||
|
||||
public Pair() {
|
||||
}
|
||||
|
||||
public Pair(K first, V second) {
|
||||
this.first = first;
|
||||
this.second = second;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Pair{" +
|
||||
"first=" + first +
|
||||
", second=" + second +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
Pair pair = (Pair) o;
|
||||
|
||||
if (first != null ? !first.equals(pair.first) : pair.first != null) return false;
|
||||
if (second != null ? !second.equals(pair.second) : pair.second != null) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = first != null ? first.hashCode() : 0;
|
||||
result = 31 * result + (second != null ? second.hashCode() : 0);
|
||||
return result;
|
||||
}
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -258,7 +258,7 @@ public class CJavaPipeline {
|
|||
PackageProcessOptions bwtaOptions = new PackageProcessOptions();
|
||||
bwtaOptions.packageName = "bwta";
|
||||
bwtaOptions.cHeadersDir = new File("bwta2-c");
|
||||
bwtaOptions.additionalImportClasses = Arrays.asList("bwapi.Position", "bwapi.TilePosition", "bwapi.Player", "bwapi.Unit");
|
||||
bwtaOptions.additionalImportClasses = Arrays.asList("bwapi.Position", "bwapi.TilePosition", "bwapi.Player", "bwapi.Unit", "bwapi.Pair");
|
||||
bwtaOptions.globalClassName = "BWTA";
|
||||
|
||||
Properties props = new Properties();
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package generator;
|
||||
|
||||
import util.Generic;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
@ -14,7 +16,7 @@ public class JavaContext {
|
|||
|
||||
private HashMap<String, String> javaToCType = new HashMap<>();
|
||||
|
||||
private List<String> valueTypes = Arrays.asList("Position", "TilePosition", "WalkPosition", "Color", "BWTA::RectangleArray<double>", "PositionOrUnit", "Point", "UnitCommand");
|
||||
private List<String> valueTypes = Arrays.asList("Position", "TilePosition", "WalkPosition", "Color", "BWTA::RectangleArray<double>", "PositionOrUnit", "Point", "UnitCommand", "Integer", "Long", "Double", "Boolean", "int", "void", "double", "long", "Pair");
|
||||
|
||||
private List<String> constantTypes = Arrays.asList("UnitType", "TechType", "UpgradeType", "Race", "UnitCommand", "WeaponType", "Order", "GameType", "Error", "PlayerType", "UnitCommandType");
|
||||
|
||||
|
@ -56,6 +58,14 @@ public class JavaContext {
|
|||
return result != null ? result : "REF";
|
||||
}
|
||||
|
||||
public String toCPair(String javaType) {
|
||||
if (javaType.startsWith("Pair")) {
|
||||
String[] pair = Generic.extractPair(javaType);
|
||||
return "std::pair<" + javaObjectToPrimitive(pair[0]) + ", " + javaObjectToPrimitive(pair[1]) + ">";
|
||||
}
|
||||
return javaType;
|
||||
}
|
||||
|
||||
public boolean isReference(String javaType) {
|
||||
return javaType.equals("REF");
|
||||
}
|
||||
|
@ -143,8 +153,20 @@ public class JavaContext {
|
|||
return javaType.startsWith("List");
|
||||
}
|
||||
|
||||
public boolean isPair(String javaType) {
|
||||
return javaType.startsWith("Pair");
|
||||
}
|
||||
|
||||
public boolean isMap(String javaType) {
|
||||
return javaType.startsWith("Map");
|
||||
}
|
||||
|
||||
public String copyConstructor(String javaType) {
|
||||
switch (javaType) {
|
||||
case "int":
|
||||
return "I";
|
||||
case "double":
|
||||
return "D";
|
||||
case "TilePosition":
|
||||
case "WalkPosition":
|
||||
case "Position":
|
||||
|
@ -156,6 +178,8 @@ public class JavaContext {
|
|||
return "I";
|
||||
case "UnitCommand":
|
||||
return "L" + packageName + "/Unit;L" + packageName + "/UnitCommandType;L" + packageName + "/Unit;III";
|
||||
case "Pair":
|
||||
return "Ljava/lang/Object;Ljava/lang/Object;";
|
||||
default:
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
@ -174,6 +198,16 @@ public class JavaContext {
|
|||
|
||||
public String implementCopyReturn(String javaType, String fieldName) {
|
||||
switch (javaType) {
|
||||
case "int":
|
||||
return ", " + fieldName;
|
||||
case "double":
|
||||
return "," + fieldName;
|
||||
|
||||
case "bool":
|
||||
return "," + fieldName;
|
||||
case "Pair":
|
||||
return ", first, second";
|
||||
|
||||
case "TilePosition":
|
||||
case "Position":
|
||||
case "WalkPosition":
|
||||
|
@ -200,4 +234,22 @@ public class JavaContext {
|
|||
public boolean isBWTA(String cls) {
|
||||
return bwtaClasses.contains(cls);
|
||||
}
|
||||
|
||||
|
||||
public boolean isPrimitive(String javaType) {
|
||||
return javaType.equals("Integer") || javaType.equals("Boolean") || javaType.equals("Double");
|
||||
}
|
||||
|
||||
public String javaObjectToPrimitive(String cType) {
|
||||
switch (cType) {
|
||||
case "Integer":
|
||||
return "int";
|
||||
case "Double":
|
||||
return "double";
|
||||
case "Boolean":
|
||||
return "bool";
|
||||
default:
|
||||
return cType;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,10 +48,39 @@ public class MirrorContext {
|
|||
return cType.startsWith("set<");
|
||||
}
|
||||
|
||||
private boolean isMap(String cType) {
|
||||
return cType.startsWith("map<");
|
||||
}
|
||||
|
||||
private boolean isPair(String cType) {
|
||||
return cType.startsWith("pair<");
|
||||
}
|
||||
|
||||
private boolean isBWAPI4Collection(String cType) {
|
||||
return cType.endsWith("set");
|
||||
}
|
||||
|
||||
private String convertPrimitive(String cType) {
|
||||
if (cType.equals("int")) {
|
||||
return "Integer";
|
||||
}
|
||||
if (cType.equals("bool")) {
|
||||
return "Boolean";
|
||||
}
|
||||
if (cType.equals("double")) {
|
||||
return "Double";
|
||||
}
|
||||
|
||||
return cType;
|
||||
}
|
||||
|
||||
private String extractPair(String cType) {
|
||||
cType = cType.substring(cType.indexOf("<") + 1, cType.lastIndexOf(">")).trim();
|
||||
String[] types = cType.split(",");
|
||||
return convertPrimitive(toJavaType(types[0].trim())) + ", " + convertPrimitive(toJavaType(types[1].trim()));
|
||||
}
|
||||
|
||||
|
||||
private String extractCollectionGeneric(String cType) {
|
||||
cType = cType.substring(cType.indexOf("<") + 1, cType.lastIndexOf(">")).trim();
|
||||
if (cType.contains(":")) {
|
||||
|
@ -75,18 +104,27 @@ public class MirrorContext {
|
|||
if (isBWAPI4Collection(cType)) {
|
||||
return "List<" + extractBWAPI4CollectionGeneric(cType) + ">";
|
||||
}
|
||||
if (isMap(cType)) {
|
||||
return "Map<" + extractPair(cType) + ">";
|
||||
}
|
||||
if (isPair(cType)) {
|
||||
return "Pair<" + extractPair(cType) + ">";
|
||||
}
|
||||
String result = cToJavaTypes.get(cType);
|
||||
if (result == null) {
|
||||
result = cType;
|
||||
}
|
||||
int ddIndex;
|
||||
if (result != null && (ddIndex = result.lastIndexOf(':')) != -1) {
|
||||
if ((ddIndex = result.lastIndexOf(':')) != -1) {
|
||||
result = result.substring(ddIndex + 1);
|
||||
}
|
||||
if (cType.endsWith("*")) {
|
||||
return cType.substring(0, cType.length() - 1);
|
||||
if (result.endsWith("*")) {
|
||||
return result.substring(0, result.length() - 1);
|
||||
}
|
||||
/*if (CJavaPipeline.BWAPI_VERSION == CJavaPipeline.BWAPI_V4 && cType.contains("bwapi.")) {
|
||||
cType = cType.replace("bwapi.", "bwapi4.");
|
||||
} */
|
||||
return result != null ? result : cType;
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<String> getAdditionalImports() {
|
||||
|
|
|
@ -85,21 +85,35 @@ public class CallImplementer {
|
|||
|
||||
if (javaContext.isCollection(param.third)) {
|
||||
String genericType = Generic.extractGeneric(param.third);
|
||||
if (CJavaPipeline.isBWAPI3()) {
|
||||
if (CJavaPipeline.isBWAPI3() || javaContext.isValueType(genericType)) {
|
||||
out.println("std::set<" + PointerTest.test(genericType) + "> " + param.second + SEMICOLON);
|
||||
} else {
|
||||
out.println(genericType + "set " + param.second + SEMICOLON);
|
||||
}
|
||||
|
||||
|
||||
out.println("jclass colClass = env->GetObjectClass(" + paramName + ");");
|
||||
out.println("jmethodID sizeMethodId = FindCachedMethod(env, colClass, \"size\", \"()I\");");
|
||||
out.println("jmethodID getMethodId = FindCachedMethod(env, colClass, \"get\", \"(I)Ljava/lang/Object;\");");
|
||||
|
||||
out.println("int size = (int)env->CallIntMethod(" + paramName + ", sizeMethodId);");
|
||||
out.println("for( int i = 0; i < size; i++ ) {");
|
||||
|
||||
if (!javaContext.isValueType(genericType)) {
|
||||
out.println("jobject jobj = env->CallObjectMethod(" + paramName + ",getMethodId);");
|
||||
} else{
|
||||
out.println("jobject p_cObj = env->CallObjectMethod(" + paramName + ",getMethodId);");
|
||||
out.println(javaContext.copyJavaObjectToC(genericType, "cObj"));
|
||||
}
|
||||
|
||||
out.print(param.second + ".insert(");
|
||||
if (!javaContext.isValueType(genericType)) {
|
||||
out.print("(" + PointerTest.test(genericType) + ")");
|
||||
out.print("env->GetLongField(jobj, FindCachedField(env, env->GetObjectClass(jobj), \"pointer\", \"J\"))");
|
||||
}
|
||||
else{
|
||||
out.print("cObj");
|
||||
}
|
||||
out.println(");");
|
||||
out.println("}");
|
||||
continue;
|
||||
|
@ -170,6 +184,8 @@ public class CallImplementer {
|
|||
out.println("}");
|
||||
}
|
||||
|
||||
|
||||
|
||||
private String wrapInCCollection(String genericType) {
|
||||
String buffer = "";
|
||||
boolean isBWAPI4Collection = !CJavaPipeline.isBWAPI3() && !genericType.startsWith("BWTA::");
|
||||
|
@ -184,9 +200,125 @@ public class CallImplementer {
|
|||
} else {
|
||||
buffer += "set";
|
||||
}
|
||||
|
||||
if(buffer.equals("set") && !CJavaPipeline.isBWAPI3()){
|
||||
return "SetContainer<" + genericType + ">";
|
||||
}
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
private String wrapInCMap(String cKey, String cValue) {
|
||||
String buffer = "std::map<";
|
||||
buffer += javaContext.javaObjectToPrimitive(cKey);
|
||||
buffer += ", ";
|
||||
buffer += javaContext.javaObjectToPrimitive(cValue);
|
||||
buffer += ">";
|
||||
return buffer;
|
||||
}
|
||||
|
||||
|
||||
private void implementMapReturn(String cKey, String cValue) {
|
||||
String javaKeyType = cKey;
|
||||
if (cKey.contains("::")) {
|
||||
javaKeyType = cKey.substring(cKey.lastIndexOf(":") + 1);
|
||||
}
|
||||
|
||||
String javaValueType = cValue;
|
||||
if (cValue.contains("::")) {
|
||||
javaValueType = cValue.substring(cValue.lastIndexOf(":") + 1);
|
||||
}
|
||||
|
||||
if (javaContext.isPrimitive(javaKeyType)) {
|
||||
cKey = javaContext.javaObjectToPrimitive(javaKeyType);
|
||||
}
|
||||
if (javaContext.isPrimitive(javaValueType)) {
|
||||
cValue = javaContext.javaObjectToPrimitive(javaValueType);
|
||||
}
|
||||
|
||||
|
||||
//get all the method ids and create na empty arraylist
|
||||
out.println("jclass listCls = FindCachedClass(env, \"java/util/HashMap\");\n" +
|
||||
"jmethodID listConsID = FindCachedMethod(env, listCls, \"<init>\", \"()V\");\n" +
|
||||
"jobject result = env->NewObject(listCls, listConsID);");
|
||||
|
||||
out.println("jmethodID addMethodID = FindCachedMethod(env, listCls, \"put\", \"(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\");");
|
||||
|
||||
|
||||
//Key static part
|
||||
String keyPackageName = javaContext.getPackageName();
|
||||
if (javaContext.isPrimitive(javaKeyType)) {
|
||||
keyPackageName = "java/lang";
|
||||
}
|
||||
|
||||
out.println("jclass keyElemClass = FindCachedClass(env, \"" + keyPackageName + "/" + javaKeyType + "\");");
|
||||
if (!javaContext.isValueType(javaKeyType)) {
|
||||
out.println("jmethodID keyGetMethodID = FindCachedMethodStatic(env, keyElemClass, \"get\", \"(J)L" + keyPackageName + "/" + javaKeyType + ";\");");
|
||||
} else {
|
||||
out.println("jmethodID keyElemConsID = FindCachedMethod(env, keyElemClass, \"<init>\", \"(" + javaContext.copyConstructor(cKey) + ")V\");");
|
||||
}
|
||||
|
||||
//Value static part
|
||||
String valuePackageName = javaContext.getPackageName();
|
||||
if (javaContext.isPrimitive(javaValueType)) {
|
||||
valuePackageName = "java/lang";
|
||||
}
|
||||
|
||||
out.println("jclass valueElemClass = FindCachedClass(env, \"" + valuePackageName + "/" + javaValueType + "\");");
|
||||
if (!javaContext.isValueType(javaValueType)) {
|
||||
out.println("jmethodID valueGetMethodID = FindCachedMethodStatic(env, valueElemClass, \"get\", \"(J)L" + valuePackageName + "/" + javaValueType + ";\");");
|
||||
} else {
|
||||
out.println("jmethodID valueElemConsID = FindCachedMethod(env, valueElemClass, \"<init>\", \"(" + javaContext.copyConstructor(cValue) + ")V\");");
|
||||
}
|
||||
|
||||
|
||||
//the for loop
|
||||
out.println("for(" + wrapInCMap(cKey, cValue) + "::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){");
|
||||
|
||||
//key dynamic part
|
||||
out.print("const " + cKey);
|
||||
if (!javaContext.isValueType(javaKeyType)) {
|
||||
out.print(PointerTest.test(cKey, false));
|
||||
}
|
||||
out.print(" key_elem_ptr = ");
|
||||
if (javaContext.isConstantTye(javaKeyType) && !javaContext.isPrimitive(javaKeyType)) {
|
||||
out.println("table" + cKey + ".find((it->first).getID())->second;");
|
||||
} else {
|
||||
out.println("(it->first);");
|
||||
}
|
||||
|
||||
if (!javaContext.isValueType(javaKeyType)) {
|
||||
out.println("jobject keyElem = env->CallStaticObjectMethod(keyElemClass, keyGetMethodID, (long)key_elem_ptr) ;");
|
||||
} else {
|
||||
out.println("jobject keyElem = env->NewObject(keyElemClass, keyElemConsID" + javaContext.implementCopyReturn(cKey, "key_elem_ptr") + ")" + SEMICOLON);
|
||||
}
|
||||
|
||||
|
||||
//value dynamic part
|
||||
out.print("const " + cValue);
|
||||
if (!javaContext.isValueType(javaValueType)) {
|
||||
out.print(PointerTest.test(cValue, false));
|
||||
}
|
||||
out.print(" value_elem_ptr = ");
|
||||
if (javaContext.isConstantTye(javaValueType) && !javaContext.isPrimitive(javaValueType)) {
|
||||
out.println("table" + cValue + ".find((it->second).getID())->second;");
|
||||
} else {
|
||||
out.println("(it->second);");
|
||||
}
|
||||
|
||||
if (!javaContext.isValueType(javaValueType)) {
|
||||
out.println("jobject valueElem = env->CallStaticObjectMethod(valueElemClass, valueGetMethodID, (long)value_elem_ptr) ;");
|
||||
} else {
|
||||
out.println("jobject valueElem = env->NewObject(valueElemClass, valueElemConsID" + javaContext.implementCopyReturn(cValue, "value_elem_ptr") + ")" + SEMICOLON);
|
||||
}
|
||||
|
||||
out.println("env->CallVoidMethod(result, addMethodID, keyElem, valueElem);");
|
||||
out.println("}");
|
||||
//for loop ends here
|
||||
|
||||
out.println("return result;");
|
||||
}
|
||||
|
||||
/**
|
||||
* this basically just converts a std::set to java.util.ArrayList
|
||||
* it simply creates an array list and then loops through the set and calls list.add(element)
|
||||
|
@ -214,7 +346,7 @@ public class CallImplementer {
|
|||
|
||||
|
||||
//the for loop
|
||||
out.print("for(" + wrapInCCollection(genericType) + "::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){");
|
||||
out.println("for(" + wrapInCCollection(genericType) + "::const_iterator it = cresult.begin(); it != cresult.end(); it++ ){");
|
||||
out.print("const " + genericType);
|
||||
if (!javaContext.isValueType(genericType)) {
|
||||
out.print(PointerTest.test(genericType, false));
|
||||
|
@ -238,6 +370,100 @@ public class CallImplementer {
|
|||
|
||||
}
|
||||
|
||||
private void implementPairReturn(String javaPairType){
|
||||
String [] pair = Generic.extractPair(javaPairType);
|
||||
|
||||
String cFirst = pair[0];
|
||||
String cSecond = pair[1];
|
||||
|
||||
String javaFirstType = cFirst;
|
||||
String javaSecondType = cSecond;
|
||||
|
||||
String javaKeyType = cFirst;
|
||||
if (cFirst.contains("::")) {
|
||||
javaKeyType = cFirst.substring(cFirst.lastIndexOf(":") + 1);
|
||||
}
|
||||
|
||||
String javaValueType = cSecond;
|
||||
if (cSecond.contains("::")) {
|
||||
javaValueType = cSecond.substring(cSecond.lastIndexOf(":") + 1);
|
||||
}
|
||||
|
||||
if (javaContext.isPrimitive(javaKeyType)) {
|
||||
cFirst = javaContext.javaObjectToPrimitive(javaKeyType);
|
||||
}
|
||||
if (javaContext.isPrimitive(javaValueType)) {
|
||||
cSecond = javaContext.javaObjectToPrimitive(javaValueType);
|
||||
}
|
||||
|
||||
//First static part
|
||||
String firstPackageName = javaContext.getPackageName();
|
||||
if (javaContext.isPrimitive(javaFirstType)) {
|
||||
firstPackageName = "java/lang";
|
||||
}
|
||||
|
||||
out.println("jclass firstElemClass = FindCachedClass(env, \"" + firstPackageName + "/" + javaFirstType + "\");");
|
||||
if (!javaContext.isValueType(javaFirstType)) {
|
||||
out.println("jmethodID firstGetMethodID = FindCachedMethodStatic(env, firstElemClass, \"get\", \"(J)L" + firstPackageName + "/" + javaFirstType + ";\");");
|
||||
} else {
|
||||
out.println("jmethodID firstElemConsID = FindCachedMethod(env, firstElemClass, \"<init>\", \"(" + javaContext.copyConstructor(cFirst) + ")V\");");
|
||||
}
|
||||
|
||||
//Second static part
|
||||
String secondPackageName = javaContext.getPackageName();
|
||||
if (javaContext.isPrimitive(javaSecondType)) {
|
||||
secondPackageName = "java/lang";
|
||||
}
|
||||
|
||||
out.println("jclass secondElemClass = FindCachedClass(env, \"" + secondPackageName + "/" + javaSecondType + "\");");
|
||||
if (!javaContext.isValueType(javaSecondType)) {
|
||||
out.println("jmethodID secondGetMethodID = FindCachedMethodStatic(env, secondElemClass, \"get\", \"(J)L" + secondPackageName + "/" + javaSecondType + ";\");");
|
||||
} else {
|
||||
out.println("jmethodID secondElemConsID = FindCachedMethod(env, secondElemClass, \"<init>\", \"(" + javaContext.copyConstructor(cSecond) + ")V\");");
|
||||
}
|
||||
|
||||
|
||||
//first dynamic part
|
||||
out.print("const " + cFirst);
|
||||
if (!javaContext.isValueType(javaFirstType)) {
|
||||
out.print(PointerTest.test(cFirst, false));
|
||||
}
|
||||
out.print(" first_elem_ptr = ");
|
||||
if (javaContext.isConstantTye(javaFirstType) && !javaContext.isPrimitive(javaFirstType)) {
|
||||
out.println("table" + cFirst + ".find((cresult.first).getID())->second;");
|
||||
} else {
|
||||
out.println("cresult.first;");
|
||||
}
|
||||
|
||||
if (!javaContext.isValueType(javaFirstType)) {
|
||||
out.println("jobject first = env->CallStaticObjectMethod(firstElemClass, firstGetMethodID, (long)first_elem_ptr) ;");
|
||||
} else {
|
||||
out.println("jobject first = env->NewObject(firstElemClass, firstElemConsID" + javaContext.implementCopyReturn(cFirst, "first_elem_ptr") + ")" + SEMICOLON);
|
||||
}
|
||||
|
||||
|
||||
//second dynamic part
|
||||
out.print("const " + cSecond);
|
||||
if (!javaContext.isValueType(javaSecondType)) {
|
||||
out.print(PointerTest.test(cSecond, false));
|
||||
}
|
||||
out.print(" second_elem_ptr = ");
|
||||
if (javaContext.isConstantTye(javaSecondType) && !javaContext.isPrimitive(javaSecondType)) {
|
||||
out.println("table" + cSecond + ".find((cresult.second).getID())->second;");
|
||||
} else {
|
||||
out.println("cresult.second;");
|
||||
}
|
||||
|
||||
if (!javaContext.isValueType(javaSecondType)) {
|
||||
out.println("jobject second = env->CallStaticObjectMethod(secondElemClass, secondGetMethodID, (long)second_elem_ptr) ;");
|
||||
} else {
|
||||
out.println("jobject second = env->NewObject(secondElemClass, secondElemConsID" + javaContext.implementCopyReturn(cSecond, "second_elem_ptr") + ")" + SEMICOLON);
|
||||
}
|
||||
|
||||
//for loop ends here
|
||||
}
|
||||
|
||||
|
||||
private void implementMethodReturn(String objName, String javaMethodName, List<Param> params, String cReturnType, String javaRetType, String javaPackageName, String clsName, boolean isStatic) {
|
||||
|
||||
String objectAccessor = VARIABLE_PREFIX + objName + (javaContext.isValueType(clsName) ? "." : "->");
|
||||
|
@ -246,7 +472,7 @@ public class CallImplementer {
|
|||
}
|
||||
|
||||
//case 1 - method returns a collection type, this requires a LOT of work, so get the std::set and proceed in implementCollectionReturn
|
||||
if (javaRetType.startsWith("List<")) {
|
||||
if (javaContext.isCollection(javaRetType)) {
|
||||
String genericType = convertToBWTA(Generic.extractGeneric(javaRetType));
|
||||
out.print(wrapInCCollection(genericType) + " cresult = " + objectAccessor + javaMethodName + "(");
|
||||
implementRealParams(params);
|
||||
|
@ -254,15 +480,38 @@ public class CallImplementer {
|
|||
implementCollectionReturn(genericType);
|
||||
return;
|
||||
}
|
||||
//case 2 method returns a java object
|
||||
|
||||
//case 2 - method returns a mape, this requires a LOT of work, so get the std::map and proceed in implementCollectionReturn
|
||||
if (javaContext.isMap(javaRetType)) {
|
||||
String pairData[] = Generic.extractPair(javaRetType);
|
||||
String key = pairData[0];
|
||||
String value = pairData[1];
|
||||
out.print(wrapInCMap(key, value) + " cresult = " + objectAccessor + javaMethodName + "(");
|
||||
implementRealParams(params);
|
||||
out.println(")" + SEMICOLON);
|
||||
implementMapReturn(key, value);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//case 4 method returns a java object
|
||||
if (cReturnType.equals("jobject")) {
|
||||
//we may need to create a new java object in case this a value type (we can't use the instance map)
|
||||
String fullReturnType = javaRetType;
|
||||
String cRetType = javaContext.toCPair(javaRetType);
|
||||
javaRetType = Generic.stripGeneric(javaRetType);
|
||||
|
||||
if (javaContext.isValueType(javaRetType)) {
|
||||
//first make the normal c++ call
|
||||
out.print(javaRetType + " cresult = " + objectAccessor + javaMethodName + "(");
|
||||
out.print(cRetType + " cresult = " + objectAccessor + javaMethodName + "(");
|
||||
implementRealParams(params);
|
||||
out.print(")");
|
||||
out.println(SEMICOLON);
|
||||
//handle pairs
|
||||
if(javaRetType.equals("Pair")){
|
||||
implementPairReturn(fullReturnType);
|
||||
}
|
||||
|
||||
out.println("jclass retcls = FindCachedClass(env, \"" + javaContext.getPackageName(javaRetType) + "/" + javaRetType + "\");");
|
||||
|
||||
//now create a new object and return it
|
||||
|
|
|
@ -42,13 +42,13 @@ public class CApiParser {
|
|||
//String FUNC_REGEX = "^(\\s*)(virtual)?\\s([\\w\\*]+)\\s([\\w\\*]+)\\((.*)\\)(\\s=\\s0;)?";
|
||||
//String FUNC_REGEX = "^(\\s*)(virtual)?\\s(BWAPI::)?([\\w\\*]+)\\s([\\w\\*]+)\\((.*)\\)((\\sconst)?\\s=\\s0;)?";
|
||||
//String FUNC_REGEX = "^(\\s*)(virtual)?\\s((BWAPI)|(std)::)?([\\w\\*]+)\\s([\\w\\*]+)\\((.*)\\)((\\sconst)?\\s=\\s0;)?";
|
||||
// 1 2 3 4 56 7 89 10 11 12 13 14,15 15,17
|
||||
public static final String FUNC_REGEX = "^(\\s*)(virtual)?\\s(const\\s)?(static\\s)?((BWAPI::)|(std)::)?((set<(\\s*(BWAPI::)?\\w+\\*?\\s*)>)|([\\w\\*]+))&?\\s+(&?[\\w\\*]+)\\((.*)\\)(\\s*const)?(\\s*=\\s0)?(;)?\\s*";
|
||||
// 1 2 3 4 56 7 891011 12 13 14 15 16 17 18 19 20
|
||||
String FUNC_REGEX = "^(\\s*)(virtual\\s)?(const\\s)?(static\\s)?((BWAPI::)|(std::))?((((pair)|(set)|(map)|(SetContainer))<(\\s*(BWAPI::)?\\w+\\*?\\s*)(\\s*,\\s*\\w+\\s*)?>)|([\\w\\*]+))&?\\s+(&?[\\w\\*]+)\\((.*)\\)(\\s*const)?(\\s*=\\s0)?(;)?\\s*";
|
||||
|
||||
static final int F_REGEX_STATIC = 4;
|
||||
static final int F_REGEX_RETURN_TYPE = 8;
|
||||
static final int F_REGEX_NAME = 13;
|
||||
static final int F_REGEX_PARAMS = 14;
|
||||
static final int F_REGEX_NAME = 19;
|
||||
static final int F_REGEX_PARAMS = 20;
|
||||
|
||||
String ENUM_VALUE_REGEX = "^(\\s*)(\\w+)(\\s*=\\s*(0x)?([0-9A-Fa-f]+))?\\s*[\\,;]";
|
||||
|
||||
|
@ -248,6 +248,10 @@ public class CApiParser {
|
|||
function.returnType = "double";
|
||||
}
|
||||
|
||||
if (function.returnType.startsWith("SetContainer")) {
|
||||
function.returnType = "set" + function.returnType.substring("SetContainer".length());
|
||||
}
|
||||
|
||||
if (function.returnType.equals("GameData*")) {
|
||||
System.err.println("function skipped - GameData* return (" + function.name + ")");
|
||||
return null;
|
||||
|
|
|
@ -12,17 +12,19 @@ import java.util.regex.Pattern;
|
|||
*/
|
||||
public class FunctionRegexTest {
|
||||
|
||||
// 1 2 3 4 56 7 89 10 11 12,13 14,15
|
||||
//String FUNC_REGEX = "^(\\s*)(virtual)?\\s(const\\s)?((BWAPI::)|(std::))?((set<(\\w+\\*?)>)|([\\w\\*]+))&?\\s([\\w\\*]+)\\((.*)\\)((\\sconst)?\\s*=\\s*0;)?";
|
||||
String FUNC_REGEX = "^(\\s*)(virtual)?\\s(const\\s)?(static\\s)?((BWAPI::)|(std)::)?((set<(\\s*(BWAPI::)?\\w+\\*?\\s*)>)|([\\w\\*]+))&?\\s+(&?[\\w\\*]+)\\((.*)\\)(\\s*const)?(\\s*=\\s0)?(;)?\\s*";
|
||||
// 1 2 3 4 56 7 891011 12 13 14 15 16 17 18 19
|
||||
String FUNC_REGEX = "^(\\s*)(virtual\\s)?(const\\s)?(static\\s)?((BWAPI::)|(std::))?((((pair)|(set)|(map))<(\\s*(BWAPI::)?\\w+\\*?\\s*)(\\s*,\\s*\\w+\\s*)?>)|([\\w\\*]+))&?\\s+(&?[\\w\\*]+)\\((.*)\\)(\\s*const)?(\\s*=\\s0)?(;)?\\s*";
|
||||
|
||||
|
||||
String ENUM_VALUE_REGEX = "^(\\s*)(\\w+)(\\s*=\\s*(0x)?([0-9A-Fa-f]+))?\\s*[\\,;]";
|
||||
|
||||
Pattern funcPattern = Pattern.compile(CApiParser.FUNC_REGEX);
|
||||
Pattern funcPattern = Pattern.compile(FUNC_REGEX);
|
||||
|
||||
public void run() {
|
||||
Matcher matcher = funcPattern.matcher(" static UnitCommand repair(Unit unit, Unit target, bool shiftQueueCommand = false);");
|
||||
Matcher matcher = funcPattern.matcher("const pair< UnitType , int > whatBuilds() const;");
|
||||
if (matcher.matches()) {
|
||||
System.out.println("match");
|
||||
System.out.print(matcher.group(18));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ package test.api;
|
|||
import bwapi.*;
|
||||
import bwapi.Text.Size.Enum;
|
||||
import bwta.BWTA;
|
||||
import util.Pair;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
|
@ -37,6 +38,7 @@ public class TestBot1 {
|
|||
public void onFrame() {
|
||||
Game game = mirror.getGame();
|
||||
Player self = game.self();
|
||||
UnitType.Protoss_Archon.whatBuilds();
|
||||
|
||||
game.drawBoxScreen(0, 0, 100, 100, Color.Red, true);
|
||||
|
||||
|
|
|
@ -9,4 +9,18 @@ public class Generic {
|
|||
public static String extractGeneric(String str){
|
||||
return str.substring(str.indexOf("<") +1, str.indexOf(">")).trim();
|
||||
}
|
||||
|
||||
public static String[] extractPair(String str) {
|
||||
str = str.substring(str.indexOf("<") +1, str.indexOf(">")).trim();
|
||||
String[] kv = str.split(",");
|
||||
return new String[]{kv[0].trim(), kv[1].trim()};
|
||||
}
|
||||
|
||||
public static String stripGeneric(String str){
|
||||
int index = str.indexOf("<");
|
||||
if (index == -1){
|
||||
return str;
|
||||
}
|
||||
return str.substring(0, index);
|
||||
}
|
||||
}
|
||||
|
|
12
src/util/StringUtils.java
Normal file
12
src/util/StringUtils.java
Normal file
|
@ -0,0 +1,12 @@
|
|||
package util;
|
||||
|
||||
/**
|
||||
* User: PC
|
||||
* Date: 22. 3. 2015
|
||||
* Time: 14:52
|
||||
*/
|
||||
public class StringUtils {
|
||||
public static String capitalize(final String line) {
|
||||
return Character.toUpperCase(line.charAt(0)) + line.substring(1);
|
||||
}
|
||||
}
|
Reference in a new issue